{"version":3,"file":"js/989-cc47201c2d4a0bbea511.js","mappings":"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","sources":["webpack://bizzey/./app/javascript/src/styles/animations.tsx","webpack://bizzey/./app/javascript/src/styles/breakpoints.tsx","webpack://bizzey/./app/javascript/src/styles/color.tsx","webpack://bizzey/./app/javascript/src/styles/font.tsx","webpack://bizzey/./app/javascript/src/styles/index.tsx","webpack://bizzey/./app/javascript/src/styles/spacing.tsx","webpack://bizzey/./app/javascript/src/styles/variables.tsx","webpack://bizzey/./app/javascript/src/types.ts"],"sourcesContent":["import { keyframes } from 'styled-components'\n\nconst shimmerAnimation = keyframes`\n\t0% {\n\t\topacity: .45;\n\t}\n\n\t100% {\n\t\topacity: .9;\n\t}\n`\n\nexport default {\n\tbaseTransitionSpeed: '150ms',\n\tshimmerAnimation: shimmerAnimation,\n}","\nenum Breakpoints {\n\tSMALL = '968px',\n\tMEDIUM = '1024px',\n\tLARGE = '1223px',\n\tCONTENTABLE_MOBILE = '500px',\n}\n\nexport default Breakpoints","export default {\n\tgrayDarkest: '#1e1f2f',\n\twhite: '#fff',\n\tblack: 'black',\n\tbrandSuccess: '#4bc800',\n\tbrandDanger: '#ff4040',\n\tbrandPrimary: '#4389fc',\n\tbrandWarning: '#ffb35a',\n\tdashboardColor: '#ffb35a',\n\tspaceColor: 'rgb(54, 97, 154);',\n\tcontactColor: 'rgb(195, 203, 33)',\n\tclientColor: '#4389fc',\n\tsupplierColor: 'rgb(195, 203, 33)',\n\tprojectColor: '#ff4040',\n\ttimeColor: '#4389fc',\n\tinvoiceColor: '#2acf79',\n\texpenseColor: '#B388EB',\n\tproductColor: '#BE8A60',\n\treportingColor: '#0fb9b1',\n\tdefaultColor: '#244063',\n\tbaseFontColor: '#1d3451',\n\tborder: '#c4cdd5',\n\tbudgetColor: '#0379c9',\n\tbudgetRemainingColor: '#9ab3dd',\n\tbudgetTrail: '#eee',\n\tlink: 'rgb(3,121,201)'\n}\n","import { CSSProperties } from \"styled-components\"\n\nenum FontWeight {\n\tThin = 100,\n\tLight = 200,\n\tRegular = 400,\n\tMedium = 500,\n\tSemiBold = 600,\n\tBold = 700,\n\tBlack = 800,\n}\n\nconst titleXXS: CSSProperties = {\n\tfontSize: 40,\n}\nconst titleExtraLarge: CSSProperties = {\n\tfontSize: 34,\n}\nconst titleLarge: CSSProperties = {\n\tfontSize: 28,\n}\nconst titleSemiLarge: CSSProperties = {\n\tfontSize: 24,\n}\nconst title: CSSProperties = {\n\tfontSize: 20,\n}\nconst subtitle: CSSProperties = {\n\tfontSize: 18,\n}\nconst subheading: CSSProperties = {\n\tfontSize: 16,\n}\nconst body: CSSProperties = {\n\tfontSize: 14,\n}\nconst caption: CSSProperties = {\n\tfontSize: 12,\n}\nconst tiny: CSSProperties = {\n\tfontSize: 10,\n}\n\ninterface IFontStyles {\n\ttitleXXS: CSSProperties,\n\ttitleXXSMedium: CSSProperties,\n\ttitleXXSBold: CSSProperties,\n\ttitleExtraLarge: CSSProperties,\n\ttitleExtraLargeMedium: CSSProperties,\n\ttitleExtraLargeBold: CSSProperties,\n\ttitleLarge: CSSProperties,\n\ttitleLargeMedium: CSSProperties,\n\ttitleLargeBold: CSSProperties,\n\ttitleSemiLarge: CSSProperties,\n\ttitleSemiLargeMedium: CSSProperties,\n\ttitleSemiLargeBold: CSSProperties,\n\ttitle: CSSProperties,\n\ttitleMedium: CSSProperties,\n\ttitleBold: CSSProperties,\n\tsubtitle: CSSProperties,\n\tsubtitleMedium: CSSProperties,\n\tsubtitleBold: CSSProperties,\n\tsubheading: CSSProperties,\n\tsubheadingMedium: CSSProperties,\n\tsubheadingBold: CSSProperties,\n\tsubheadingBlack: CSSProperties,\n\tbody: CSSProperties\n\tbodyMedium: CSSProperties,\n\tbodyBold: CSSProperties,\n\tcaption: CSSProperties,\n\tcaptionMedium: CSSProperties,\n\tcaptionBold: CSSProperties,\n\ttiny: CSSProperties,\n\ttinyMedium: CSSProperties,\n\ttinyBold: CSSProperties,\n}\n\nconst font: IFontStyles = {\n\ttitleXXS: {\n\t\t...titleXXS,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\ttitleXXSMedium: {\n\t\t...titleXXS,\n\t\tfontWeight:FontWeight.Medium\n\t},\n\ttitleXXSBold: {\n\t\t...titleXXS,\n\t\tfontWeight: FontWeight.Bold\n\t},\n\ttitleExtraLarge: {\n\t\t...titleExtraLarge,\n\t\tfontWeight: FontWeight.Regular\n\t},\n\ttitleExtraLargeMedium: {\n\t\t...titleExtraLarge,\n\t\tfontWeight: FontWeight.Medium\n\t},\n\ttitleExtraLargeBold: {\n\t\t...titleExtraLarge,\n\t\tfontWeight: FontWeight.Medium\n\t},\n\ttitleLarge: {\n\t\t...titleLarge,\n\t\tfontWeight: FontWeight.Regular\n\t},\n\ttitleLargeMedium: {\n\t\t...titleLarge,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\ttitleLargeBold: {\n\t\t...titleLarge,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\ttitleSemiLarge: {\n\t\t...titleSemiLarge,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\ttitleSemiLargeMedium: {\n\t\t...titleSemiLarge,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\ttitleSemiLargeBold: {\n\t\t...titleSemiLarge,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\ttitle: {\n\t\t...title,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\ttitleMedium: {\n\t\t...title,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\ttitleBold: {\n\t\t...title,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\tsubtitle: {\n\t\t...subtitle,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\tsubtitleMedium: {\n\t\t...subtitle,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\tsubtitleBold: {\n\t\t...subtitle,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\tsubheading: {\n\t\t...subheading,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\tsubheadingMedium: {\n\t\t...subheading,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\tsubheadingBold: {\n\t\t...subheading,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\tsubheadingBlack: {\n\t\t...subheading,\n\t\tfontWeight: FontWeight.Black,\n\t},\n\tbody: {\n\t\t...body,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\tbodyMedium: {\n\t\t...body,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\tbodyBold: {\n\t\t...body,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\tcaption: {\n\t\t...caption,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\tcaptionMedium: {\n\t\t...caption,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\tcaptionBold: {\n\t\t...caption,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n\ttiny: {\n\t\t...tiny,\n\t\tfontWeight: FontWeight.Regular,\n\t},\n\ttinyMedium: {\n\t\t...tiny,\n\t\tfontWeight: FontWeight.Medium,\n\t},\n\ttinyBold: {\n\t\t...tiny,\n\t\tfontWeight: FontWeight.Bold,\n\t},\n}\n\nexport default font\n","import variables from './variables'\nimport font from './font'\nimport spacing from './spacing'\nimport color from './color'\nimport breakpoints from './breakpoints'\nimport animations from './animations'\n\nconst Style = {\n\tfont,\n\tspacing,\n\tcolor,\n\tbreakpoints,\n\tanimations,\n\tvariables,\n}\nexport { Style }\n","export default {\n\tx0: '0px',\n\tx0_25: '2px',\n\tx0_5: '4px',\n\tx0_75: '6px',\n\tx1: '8px',\n\tx1_25: '10px',\n\tx1_5: '12px',\n\tx2: '16px',\n\tx2_5: '20px',\n\tx3: '24px',\n\tx3_5: '28px',\n\tx4: '32px',\n\tx5: '40px',\n\tx6: '48px',\n\tx7: '56px',\n\tx8: '64px',\n\tx9: '72px',\n\tx10: '80px',\n\tx11: '88px',\n\tx12: '96px',\n}\n","export default {\n\tbaseBorderRadius: '4px',\n}","import { IconTypes } from \"./components/Icons/Icon\";\n\nexport enum Locale {\n EN = \"en\",\n NL = \"nl\",\n FR = \"fr\",\n DE = \"de\",\n}\n\nexport interface Me {\n name?: string;\n email?: string;\n locale?: Locale;\n workspace_id?: string;\n}\n\nexport interface User {\n id: string;\n email: string;\n name: string;\n otp_enabled: boolean;\n workspace?: Workspace;\n email_confirmed_at: string;\n created_at: string;\n locale: Locale;\n user_workspace_setting?: UserWorkspaceSetting;\n}\n\nexport enum UserWorkspaceSettingStatus {\n // i18n.t('UserWorkspaceSettingStatus::active')\n ACTIVE = \"active\",\n // i18n.t('UserWorkspaceSettingStatus::invited')\n INVITED = \"invited\",\n}\n\nexport enum UserWorkspaceSettingRole {\n // i18n.t('UserWorkspaceSettingRole::owner')\n OWNER = \"owner\",\n // i18n.t('UserWorkspaceSettingRole::manager')\n MANAGER = \"manager\",\n // i18n.t('UserWorkspaceSettingRole::employee')\n EMPLOYEE = \"employee\",\n}\n\nexport enum UserWorkspaceSettingScope {\n DASHBOARD = \"dashboard\",\n CALENDAR = \"calendar\",\n TASK = \"task\",\n CONTACT = \"contact\",\n DEAL = \"deal\",\n PROJECT = \"project\",\n TIME_TRACKING = \"time_tracking\",\n TIME_TRACKING_EXPORT = \"time_tracking:export\",\n PROPOSAL = \"proposal\",\n CONTRACT = \"contract\",\n INVOICE = \"invoice\",\n INVOICE_EXPORT = \"invoice:export\",\n EXPENSE = \"expense\",\n EXPENSE_EXPORT = \"expense:export\",\n DOCUMENT = \"document\",\n DOCUMENT_EXPORT = \"document:export\",\n BANK = \"bank\",\n BANK_PAYMENT = \"bank:payment\",\n ACCOUNTANT = \"accountant\",\n PRODUCT = \"product\",\n PRODUCT_EXPORT = \"product:export\",\n PRODUCT_VIEW_PURCHASE_PRICE = \"product:view_purchase_price\",\n REPORTING = \"reporting\",\n SETTING = \"setting\",\n FILE = \"file\",\n FORM = \"form\",\n PLAYBOOK = \"playbook\",\n SEQUENCE = \"sequence\",\n}\n\n// t('WeekdaySchedule::0')\n// t('WeekdaySchedule::1')\n// t('WeekdaySchedule::2')\n// t('WeekdaySchedule::3')\n// t('WeekdaySchedule::4')\n// t('WeekdaySchedule::5')\n// t('WeekdaySchedule::6')\nexport interface WeekdaySchedule {\n enabled?: boolean;\n start_time?: string;\n end_time?: string;\n break_enabled?: boolean;\n break_start_time?: string;\n break_end_time?: string;\n}\n\nexport interface UserWorkspaceSetting {\n id?: string;\n email?: string;\n role?: UserWorkspaceSettingRole;\n scopes?: UserWorkspaceSettingScope[];\n hourly_cost?: number;\n hourly_rate?: number;\n day_rate?: number;\n status?: UserWorkspaceSettingStatus;\n admin?: boolean;\n week_schedule?: WeekdaySchedule[];\n user?: User;\n user_id?: string;\n workspace?: Workspace;\n workspace_id?: string;\n}\n\nexport interface CurrentUser extends User {}\n\nexport enum PeppolWorkspaceStatus {\n APPROVED = \"approved\",\n PENDING = \"pending\",\n REJECTED = \"rejected\",\n}\n\nexport interface Workspace {\n id: string;\n business_name: string;\n email: string;\n timezone: string;\n street: string;\n receipt_details: string;\n stripe_id: string;\n vip: boolean;\n slug: string;\n city: string;\n province: string;\n zip_code: string;\n country_code: string;\n vat_number: string;\n phone_number: string;\n bic_code?: string;\n account_number: string;\n website: string;\n appointment_url: string;\n description: string;\n did_onboarding: boolean;\n setting: Settings;\n subscription: Subscription;\n card: Card;\n users_count: number;\n business_logo_url: string | null;\n business_logo: string | null;\n app_invite_url: string | null;\n expense_email_address: string;\n bcc_email_address: string;\n peppol_id: string;\n peppol_status: PeppolWorkspaceStatus;\n peppol_enabled: boolean;\n}\n\nexport enum NumberFormat {\n COMMA_PERIOD = \"comma_period\",\n PERIOD_COMMA = \"period_comma\",\n APOSTROPHE_PERIOD = \"apostrophe_period\",\n SPACE_COMMA = \"space_comma\",\n SPACE_PERIOD = \"space_period\",\n}\n\nexport interface Settings {\n id: string;\n date_format: string;\n time_format: \"hh:mm:ss\" | \"hh mm ss\";\n hour_format: \"24\" | \"12\";\n start_week_on: \"sunday\" | \"monday\";\n default_ledger_item_locale: Locale;\n default_currency: string;\n number_format: NumberFormat;\n quotation_validity_duration: number;\n invoice_payment_duration: number;\n default_hourly_rate: number;\n default_day_rate: number;\n travel_cost: number;\n\n workspace_id: string;\n weekly_summary_subscription: boolean;\n invoice_viewed_subscription: boolean;\n invoices_due_today_subscription: boolean;\n default_ledger_condition_id: string;\n ledger_item_template_id: string;\n\n order_forms_enabled: boolean;\n prefix_order_form_number: string;\n order_form_number: string;\n suffix_order_form_number: string;\n next_order_form_number: string;\n order_form_validity_duration: number;\n\n delivery_notes_enabled: boolean;\n prefix_delivery_note_number: string;\n delivery_note_number: string;\n suffix_delivery_note_number: string;\n next_delivery_note_number: string;\n\n prefix_quotation_number: string;\n quotation_number: string;\n suffix_quotation_number: string;\n next_quotation_number: string;\n\n pro_forma_invoices_enabled?: boolean;\n prefix_pro_forma_invoice_number: string;\n pro_forma_invoice_number: string;\n suffix_pro_forma_invoice_number: string;\n next_pro_forma_invoice_number: string;\n\n prefix_invoice_number: string;\n invoice_number: string;\n suffix_invoice_number: string;\n next_invoice_number: string;\n\n billable_rounding: BillableRounding;\n default_identifier_type: RemittanceInformationType;\n yearly_revenue_goal?: string;\n invoice_reminders_enabled: boolean;\n invoice_reminders_interval: number;\n invoice_reminders_limit: number;\n invoice_paid_confirmation_enabled?: boolean;\n default_menu: NavigationMenuItem[];\n po_number_enabled?: boolean;\n default_rate_type?: RateType;\n translations: MobilityTranslations;\n auto_email_bcc_enabled?: boolean;\n bcc_email_addresses?: string[];\n approved_email_addresses?: string[];\n company_brand_color?: string;\n}\n\nexport type MobilityTranslations = { [Property in Locale]?: T };\n\nexport type SettingTranslateableFields = {\n default_pro_forma_invoice_details?: string;\n pro_forma_invoice_email_subject?: string;\n pro_forma_invoice_email_body?: string;\n default_invoice_details?: string;\n invoice_email_subject?: string;\n invoice_email_body?: string;\n quotation_email_subject?: string;\n quotation_email_body?: string;\n default_quotation_details?: string;\n credit_note_email_subject?: string;\n credit_note_email_body?: string;\n default_credit_note_details?: string;\n invoice_reminder_email_subject?: string;\n invoice_reminder_email_body?: string;\n invoice_paid_email_subject?: string;\n invoice_paid_email_body?: string;\n order_form_email_subject?: string;\n order_form_email_body?: string;\n default_order_form_details?: string;\n default_delivery_note_details?: string;\n delivery_note_email_subject?: string;\n delivery_note_email_body?: string;\n contract_email_subject?: string;\n contract_email_body?: string;\n proposal_email_subject?: string;\n proposal_email_body?: string;\n};\n\nexport enum BillableRounding {\n NONE = \"none\",\n ROUND_NEAREST_MINUTE = \"round_nearest_minute\",\n ROUND_NEAREST_QUARTER_HOUR = \"round_nearest_quarter_hour\",\n ROUND_NEAREST_HALF_HOUR = \"round_nearest_half_hour\",\n ROUND_NEAREST_HOUR = \"round_nearest_hour\",\n}\n\nexport enum SubscriptionStatus {\n TRIALING = \"trialing\",\n ACTIVE = \"active\",\n UNPAID = \"unpaid\",\n}\nexport interface Subscription {\n id: string;\n workspace_id: string;\n plan_id: string;\n status: SubscriptionStatus;\n stripe_id: string;\n trial_end: number;\n plan?: Plan;\n}\n\nexport interface Card {\n id: string;\n brand: string;\n expires_on: string;\n last_digits: string;\n stripe_id: string;\n}\n\nexport enum PlanType {\n FREE = \"free\",\n BUSINESS = \"business\",\n BUSINESS_PRO = \"business_pro\",\n}\n\nexport interface Plan {\n id: string;\n name: string;\n type: PlanType;\n stripe_id: string;\n price: number;\n interval: number;\n}\n\nexport interface SubscriptionInterval {\n name: string;\n value: number;\n}\n\nexport interface RequestErrors {\n errors: any;\n}\n\nexport enum ExpenseType {\n // t('ExpenseType::invoice')\n INVOICE = \"invoice\",\n // t('ExpenseType::credit_note')\n CREDIT_NOTE = \"credit_note\",\n}\n\nexport enum ExpenseStatus {\n // t('ExpenseStatus::overdue')\n OVERDUE = \"overdue\",\n // t('ExpenseStatus::outstanding')\n OUTSTANDING = \"outstanding\",\n // t('ExpenseStatus::paid')\n PAID = \"paid\",\n}\n\nexport interface Expense {\n id?: string;\n color?: string;\n name?: string;\n type?: ExpenseType;\n notes?: string;\n invoiced_on?: string | any;\n due_on?: string | any;\n paid_on?: string | any;\n net_total?: string | number;\n amount?: string | number;\n billable?: boolean;\n markup?: string | number;\n billable_amount?: string | number;\n billed?: boolean;\n attachment_file_name?: string;\n attachment_content_type?: string;\n attachment_file_size?: number;\n attachment_url?: string | null;\n attachment_download_url?: string | null;\n attachment?: any;\n supplier_id?: string;\n supplier?: Contact;\n category_id?: string;\n category?: ExpenseCategory;\n currency?: string;\n booked_on?: string | Date | null | any;\n contact_id?: string;\n contact?: Contact;\n project_id?: string;\n project?: Project;\n ledger_item?: LedgerItem;\n ledger_item_id?: string;\n custom_fields?: ModelCustomFieldsType;\n recurring_schedule?: RecurringSchedule;\n payment_id?: string;\n payment?: Payment;\n remittance_information?: string;\n remittance_information_type?: RemittanceInformationType;\n peppol_id?: string;\n created_at?: string;\n\n // OCR related fields\n extraction_data?: ExpenseExtractionData;\n}\n\nexport type ExpenseProperty = keyof Expense;\n\nexport type ExpenseColumnProperty = keyof Pick;\nexport const ExpenseColumns: ExpenseColumnProperty[] = [];\n\nexport type ExpenseFilterProperty = keyof Pick<\n Expense & { status?: ExpenseStatus; recurring?: boolean },\n | \"name\"\n | \"status\"\n | \"invoiced_on\"\n | \"due_on\"\n | \"net_total\"\n | \"amount\"\n | \"currency\"\n | \"contact_id\"\n | \"project_id\"\n | \"supplier_id\"\n | \"recurring\"\n | \"booked_on\"\n | \"paid_on\"\n | \"billable\"\n | \"billed\"\n | \"created_at\"\n>;\n\nexport const ExpenseFilters: ExpenseFilterProperty[] = [\n \"name\",\n \"status\",\n \"invoiced_on\",\n \"due_on\",\n \"net_total\",\n \"amount\",\n \"currency\",\n \"contact_id\",\n \"project_id\",\n \"supplier_id\",\n \"recurring\",\n \"booked_on\",\n \"paid_on\",\n \"billable\",\n \"billed\",\n \"created_at\",\n];\nexport type ExpenseFilter = ResourceFilter;\n\nexport interface ExpenseMetadata {\n previous_supplier_expense?: Expense;\n}\n\nexport enum RemittanceInformationType {\n FREE = \"free\",\n UNSTRUCTURED = \"unstructured\",\n STRUCTURED = \"structured\",\n}\n\nexport enum LedgerItemStatus {\n // t('LedgerItemStatus::draft')\n DRAFT = \"draft\",\n // t('LedgerItemStatus::overdue')\n OVERDUE = \"overdue\",\n // t('LedgerItemStatus::approved')\n APPROVED = \"approved\",\n // t('LedgerItemStatus::rejected')\n REJECTED = \"rejected\",\n // t('LedgerItemStatus::invoiced')\n INVOICED = \"invoiced\",\n // t('LedgerItemStatus::outstanding')\n OUTSTANDING = \"outstanding\",\n // t('LedgerItemStatus::paid')\n PAID = \"paid\",\n // t('LedgerItemStatus::delivered')\n DELIVERED = \"delivered\",\n // t('LedgerItemStatus::cancelled')\n CANCELLED = \"cancelled\",\n // t('LedgerItemStatus::expired')\n EXPIRED = \"expired\",\n // t('LedgerItemStatus::credited')\n CREDITED = \"credited\",\n // t('LedgerItemStatus::scheduled')\n SCHEDULED = \"scheduled\",\n}\n\nexport interface LedgerItem {\n id?: string;\n contact_id?: string;\n contact?: Contact;\n project?: Project;\n project_id?: string | null;\n email_contact_id?: string;\n email_contact?: Contact;\n created_at?: string;\n currency?: string;\n details?: string;\n vat_rules?: string;\n due_on?: string | Date | any;\n approved_on?: string | Date | any;\n rejected_on?: string | Date | any;\n estimated_net_on?: string | number;\n identifier?: string;\n identifier_type?: RemittanceInformationType;\n issued_on?: string | Date | any;\n ledger_condition?: LedgerCondition;\n ledger_condition_id?: string;\n line_items?: LineItem[];\n notes?: string;\n number?: string;\n paid_on?: string | Date | any;\n payment_gateway?: string | null;\n payment_id?: string | null;\n sent_at?: string | Date | null;\n subtotal?: string | number;\n discount?: string | number;\n discount_total?: string | number;\n net_total?: string | number;\n tax_total?: string | number;\n amount?: string;\n type?: LedgerItemType;\n workspace_id?: string;\n viewed_at?: string | Date | any;\n updated_at?: string | Date | any;\n booked_on?: string | Date | null | any;\n // Used to indicate when the quotation was invoiced\n invoiced_on?: string | Date | null | any;\n // Used to link a pro forma invoice to an invoice\n pro_forma_invoice_id?: string | null;\n // Use to link a creditnote to an invoice\n invoice_id?: string | null;\n // Used to indicate when the invoice was credited\n credited_on?: string | Date | any;\n // Use to link a invoice to an quote\n quotation_id?: string | null;\n // Used to indicate when the order form has an attached delivery note\n delivered_on?: string | Date | null | any;\n // Used to indicate what delivery note is attached to an order form\n order_form_id?: string | null;\n // Used to indicate what invoice is attached to a delivery note\n delivery_note_id?: string | null;\n // Used to add a purchase order number\n po_number?: string | null;\n cancelled_on?: string | Date | null | any;\n reminders_enabled?: boolean;\n reminders_count?: number;\n last_reminder_sent_at?: string | Date | null;\n recurring_schedule?: RecurringSchedule;\n custom_fields?: ModelCustomFieldsType;\n claim_id?: string;\n deal_id?: string;\n data?: LedgerItemData;\n peppol_id?: string;\n peppol_errors?: { field: string; value: string }[];\n pdf_attachment_file_name?: string;\n pdf_attachment_content_type?: string;\n pdf_attachment_file_size?: number;\n pdf_attachment_url?: string | null;\n pdf_attachment_download_url?: string | null;\n}\n\nexport type LedgerItemProperty = keyof Contact;\n\nexport type LedgerItemColumnProperty = keyof Pick;\nexport const LedgerItemColumns: ContactColumnProperty[] = [];\n\nexport type LedgerItemFilterProperty = keyof Pick<\n LedgerItem & { status: LedgerItemStatus },\n | \"contact_id\"\n | \"project_id\"\n | \"status\"\n | \"number\"\n | \"po_number\"\n | \"identifier\"\n | \"amount\"\n | \"issued_on\"\n | \"due_on\"\n | \"credited_on\"\n | \"booked_on\"\n | \"invoiced_on\"\n | \"approved_on\"\n | \"rejected_on\"\n | \"delivered_on\"\n | \"reminders_enabled\"\n | \"created_at\"\n>;\n\nexport const LedgerItemFilters: LedgerItemFilterProperty[] = [\n \"contact_id\",\n \"project_id\",\n \"status\",\n \"number\",\n \"po_number\",\n \"identifier\",\n \"amount\",\n \"issued_on\",\n \"due_on\",\n \"credited_on\",\n \"invoiced_on\",\n \"approved_on\",\n \"rejected_on\",\n \"delivered_on\",\n \"booked_on\",\n \"reminders_enabled\",\n \"created_at\",\n];\nexport type LedgerItemFilter = ResourceFilter;\n\nexport interface LedgerItemData {\n payment_confirmation_message?: string;\n payment_confirmation_attachments?: ActiveStorage.Blob[];\n}\n\nexport enum RecurrenceUnit {\n DAILY = \"daily\",\n WEEKLY = \"weekly\",\n MONTHLY = \"monthly\",\n BIMONTHLY = \"bimonthly\",\n QUARTERLY = \"quarterly\",\n SEMESTERLY = \"semesterly\",\n YEARLY = \"yearly\",\n}\nexport enum DayOfWeek {\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n SUNDAY = 7,\n}\n\nexport enum MonthOfYear {\n JANUARY = 1,\n FEBRUARY = 2,\n MARCH = 3,\n APRIL = 4,\n MAY = 5,\n JUNE = 6,\n JULY = 7,\n AUGUST = 8,\n SEPTEMBER = 9,\n OCTOBER = 10,\n NOVEMBER = 11,\n DECEMBER = 12,\n}\n\nexport interface RecurringSchedule {\n start_date?: string | any;\n end_date?: string | any;\n recurrence_unit?: RecurrenceUnit | null;\n recurrence_interval?: number | null;\n repeat_on_day_of_week?: DayOfWeek[];\n repeat_on_day_of_month?: number | null;\n repeat_on_month_of_year?: MonthOfYear | null;\n timezone?: string;\n repeat_at_end_of_month?: boolean;\n schedulable_id?: string;\n schedulable_type?: string;\n next_occurrence_on?: string | Date | null | any;\n}\n\nexport interface LedgerCondition {\n id?: string;\n name?: string;\n workspace_id?: string;\n translations: MobilityTranslations;\n created_at?: string;\n updated_at?: string;\n}\n\nexport interface LedgerConditionTranslateableFields {\n content?: string;\n}\n\nexport enum TimeEntryExportType {\n ALL = \"all\",\n BILLED = \"billed\",\n UNBILLED = \"unbilled\",\n BILLABLE = \"billable\",\n UNBILLABLE = \"unbillable\",\n}\n\nexport interface TimeEntry {\n id?: string;\n description?: string;\n started_at?: string | Date;\n ended_at?: string | Date;\n duration?: number;\n base_rate?: number;\n cost_rate?: number;\n multiplier?: number;\n rate?: number;\n hours?: string | number;\n amount?: string | number;\n cost_total?: number;\n billable?: boolean;\n billed?: boolean;\n fixed_rate?: boolean;\n travel_distance?: number;\n active?: boolean;\n workspace_id?: string;\n user_id?: string;\n work_type_id?: string;\n contact_id?: string;\n project_id?: string;\n line_item_id?: string;\n task_id?: string;\n po_number?: string;\n work_type?: WorkType;\n deal_id?: string;\n contact?: Contact;\n project?: Project;\n custom_fields?: ModelCustomFieldsType;\n}\n\nexport enum VATLiability {\n // t('VATLiability::unknown')\n UNKNOWN_VAT_LIABILITY = \"unknown\",\n // t('VATLiability::vat_liable')\n VAT_LIABLE_VAT_LIABILITY = \"vat_liable\",\n // t('VATLiability::intracommunity')\n INTRACOMMUNITY_VAT_LIABILITY = \"intracommunity\",\n // t('VATLiability::outside_eu')\n OUTSIDE_EU_VAT_LIABILITY = \"outside_eu\",\n // t('VATLiability::private_person')\n PRIVATE_PERSON_VAT_LIABILITY = \"private_person\",\n // t('VATLiability::exempted')\n EXEMPTED_VAT_LIABILITY = \"exempted\",\n // t('VATLiability::co_contractor')\n CO_CONTRACTOR_VAT_LIABILITY = \"co_contractor\",\n}\n\nexport const enum ContactType {\n // t('ContactType::person')\n PERSON = \"person\",\n // t('ContactType::company')\n COMPANY = \"company\",\n}\nexport interface Person extends ContactBase {\n type?: ContactType.PERSON;\n first_name?: string;\n last_name?: string;\n job_title?: string;\n birthdate?: string | Date;\n}\nexport interface Company extends ContactBase {\n type?: ContactType.COMPANY;\n contacts_count?: number;\n}\n\nexport type Contact = Person | Company;\nexport type ContactProperty = keyof Contact;\n\nexport type PersonColumnProperty = keyof Pick<\n Person,\n \"first_name\" | \"last_name\" | \"job_title\" | \"birthdate\"\n>;\n\nexport type CompanyColumnProperty = keyof Pick<\n Company,\n | \"name\"\n | \"type\"\n | \"background_info\"\n | \"alias\"\n | \"color\"\n | \"locale\"\n | \"currency\"\n | \"vat_number\"\n | \"notes\"\n | \"referral_source\"\n | \"hourly_rate\"\n | \"day_rate\"\n | \"archived\"\n | \"vat_liability\"\n | \"rate_type\"\n | \"peppol_id\"\n | \"emails\"\n | \"telephone_numbers\"\n | \"account_numbers\"\n | \"billing_address\"\n | \"delivery_address\"\n | \"websites\"\n | \"groups\"\n | \"starred\"\n | \"marketing_consent\"\n | \"created_at\"\n>;\n\nexport type ContactColumnProperty =\n | CompanyColumnProperty\n | PersonColumnProperty;\n\nexport const ContactColumns: ContactColumnProperty[] = [\n \"name\",\n \"type\",\n \"background_info\",\n \"alias\",\n \"color\",\n \"locale\",\n \"currency\",\n \"vat_number\",\n \"notes\",\n \"referral_source\",\n \"hourly_rate\",\n \"day_rate\",\n \"archived\",\n \"vat_liability\",\n \"rate_type\",\n \"peppol_id\",\n \"emails\",\n \"telephone_numbers\",\n \"account_numbers\",\n \"billing_address\",\n \"delivery_address\",\n \"websites\",\n \"groups\",\n \"starred\",\n \"marketing_consent\",\n \"created_at\",\n];\n\nexport type ContactFilterProperty = keyof Pick<\n Contact,\n | \"name\"\n | \"alias\"\n | \"type\"\n | \"group_ids\"\n | \"starred\"\n | \"archived\"\n | \"locale\"\n | \"vat_number\"\n | \"hourly_rate\"\n | \"day_rate\"\n | \"marketing_consent\"\n | \"created_at\"\n>;\n\nexport const ContactFilters: ContactFilterProperty[] = [\n \"name\",\n \"alias\",\n \"type\",\n \"group_ids\",\n \"starred\",\n \"archived\",\n \"locale\",\n \"vat_number\",\n \"hourly_rate\",\n \"day_rate\",\n \"marketing_consent\",\n \"created_at\",\n];\nexport type ContactFilter = ResourceFilter;\n\nexport interface ExportContactParams {\n export_type: SpreadsheetExportType;\n}\n\nexport enum ContactEmailType {\n // t('ContactEmailType::work')\n WORK = \"work\",\n // t('ContactEmailType::personal')\n PERSONAL = \"personal\",\n // t('ContactEmailType::other')\n OTHER = \"other\",\n}\n\nexport interface ContactEmail {\n id?: string;\n type?: ContactEmailType;\n value?: string;\n position?: number;\n _destroy?: boolean;\n}\n\nexport enum ContactTelephoneNumberType {\n // t('ContactTelephoneNumberType::work')\n WORK = \"work\",\n // t('ContactTelephoneNumberType::mobile')\n MOBILE = \"mobile\",\n // t('ContactTelephoneNumberType::home')\n HOME = \"home\",\n // t('ContactTelephoneNumberType::fax')\n FAX = \"fax\",\n // t('ContactTelephoneNumberType::other')\n OTHER = \"other\",\n}\n\nexport interface ContactTelephoneNumber {\n id?: string;\n type?: ContactTelephoneNumberType;\n value?: string;\n position?: number;\n _destroy?: boolean;\n}\n\nexport interface ContactAccountNumber {\n id?: string;\n value?: string;\n position?: number;\n _destroy?: boolean;\n}\n\nexport enum ContactAddressType {\n // t('ContactAddressType::billing')\n BILLING = \"billing\",\n // t('ContactAddressType::delivery')\n DELIVERY = \"delivery\",\n}\n\nexport interface ContactAddress {\n id?: string;\n type?: ContactAddressType;\n street?: string;\n street_number?: string;\n city?: string;\n zip?: string;\n country?: string;\n state?: string;\n position?: number;\n _destroy?: boolean;\n}\n\nexport interface ContactWebsite {\n id?: string;\n url?: string;\n position?: number;\n _destroy?: boolean;\n}\n\nexport interface ContactBase {\n id?: string;\n name?: string;\n background_info?: string;\n alias?: string;\n color?: string;\n locale?: string;\n currency?: string;\n vat_number?: string;\n notes?: string;\n workspace_id?: string;\n referral_source_id?: string;\n referral_source?: ReferralSource;\n hourly_rate?: number;\n day_rate?: number;\n archived?: boolean;\n vat_liability?: VATLiability;\n rate_type?: RateType;\n peppol_id?: string;\n custom_fields?: ModelCustomFieldsType;\n emails?: ContactEmail[];\n telephone_numbers?: ContactTelephoneNumber[];\n account_numbers?: ContactAccountNumber[];\n billing_address?: ContactAddress;\n delivery_address?: ContactAddress;\n websites?: ContactWebsite[];\n contacts?: Contact[];\n groups?: ContactGroup[];\n group_ids?: string[];\n contact?: Contact;\n contact_id?: string;\n starred?: boolean;\n delivery_same_as_invoice_address?: boolean;\n marketing_consent?: boolean;\n created_at?: string | Date;\n}\n\nexport interface ContactGroup {\n id?: string;\n name?: string;\n contact_count?: number;\n workspace_id?: string;\n}\n\nexport enum ProjectStatus {\n ACTIVE = \"active\",\n PROPOSAL = \"proposal\",\n COMPLETED = \"completed\",\n CANCELLED = \"cancelled\",\n}\n\nexport enum ProjectBillableType {\n // t('ProjectBillableType::time_and_materials')\n TIME_AND_MATERIALS = \"time_and_materials\",\n // t('ProjectBillableType::fixed_budget')\n FIXED_BUDGET = \"fixed_budget\",\n // t('ProjectBillableType::non_billable')\n NON_BILLABLE = \"non_billable\",\n}\n\nexport enum ProjectBudgetType {\n // t('ProjectBudgetType::none')\n NONE = \"none\",\n // t('ProjectBudgetType::total_costs')\n TOTAL_COSTS = \"total_costs\",\n // t('ProjectBudgetType::total_hours')\n TOTAL_HOURS = \"total_hours\",\n}\n\ninterface BudgetDataCosts {\n type: ProjectBudgetType.TOTAL_COSTS;\n budget: number;\n budget_alert_treshold: number;\n remaining_budget: number;\n labour: number;\n expenses: number;\n}\n\ninterface BudgetDataHours {\n type: ProjectBudgetType.TOTAL_HOURS;\n budget: number;\n budget_alert_treshold: number;\n remaining_budget: number;\n hours: number;\n}\n\nexport type BudgetData = BudgetDataCosts | BudgetDataHours;\n\nexport interface Project {\n id?: string;\n name?: string;\n color?: string;\n notes?: string;\n billable_type?: ProjectBillableType;\n labour_costs?: number;\n budget_labour_costs?: number;\n expense_costs?: number;\n budget_expense_costs?: number;\n total_costs?: number;\n budget_total_costs?: number;\n billable_hours?: number;\n budget_billable_hours?: number;\n non_billable_hours?: number;\n budget_non_billable_hours?: number;\n total_hours?: number;\n budget_total_hours?: number;\n budget_type?: ProjectBudgetType;\n budget?: number;\n budget_hours?: number;\n budget_alert_treshold?: number;\n budget_spent?: number;\n budget_remaining?: number;\n budget_alert_send_on?: string | Date;\n budget_resets_monthly?: boolean;\n hourly_rate?: number;\n day_rate?: number;\n estimated_start_date?: string;\n estimated_end_date?: string;\n start_date?: string;\n end_date?: string;\n cancel_date?: string;\n status?: ProjectStatus;\n contact_id?: string;\n workspace_id?: string;\n contact?: Contact;\n archived?: boolean;\n po_number?: string;\n rate_type?: RateType;\n custom_fields?: ModelCustomFieldsType;\n created_at?: string | Date;\n}\n\nexport type ProjectProperty = keyof Project;\n\nexport type ProjectColumnProperty = keyof Pick;\nexport const ProjectColumns: ProjectColumnProperty[] = [];\n\nexport type ProjectFilterProperty = keyof Pick<\n Project,\n | \"name\"\n | \"po_number\"\n | \"contact_id\"\n | \"billable_type\"\n | \"hourly_rate\"\n | \"day_rate\"\n | \"budget\"\n | \"budget_type\"\n | \"total_costs\"\n | \"created_at\"\n>;\n\nexport const ProjectFilters: ProjectFilterProperty[] = [\n \"name\",\n \"po_number\",\n \"contact_id\",\n \"billable_type\",\n \"hourly_rate\",\n \"day_rate\",\n \"budget\",\n \"budget_type\",\n \"total_costs\",\n \"created_at\",\n];\nexport type ProjectFilter = ResourceFilter;\n\nexport interface ProjectSummary {\n hours: {\n total: number;\n billable: number;\n non_billable: number;\n };\n budget?: {\n type: ProjectBudgetType;\n total: number;\n used: number;\n remaining: number;\n };\n total_costs: {\n total: number;\n labour: number;\n expenses: number;\n };\n uninvoiced_amount: {\n total: number;\n project: number;\n labour_and_expenses: number;\n };\n}\n\nexport enum ContactableType {\n CLIENT = \"Contact\",\n SUPPLIER = \"Supplier\",\n USER_WORKSPACE_SETTING = \"UserWorkspaceSetting\",\n}\n\nexport enum IntegrationType {\n MOLLIE = \"mollie\",\n STRIPE = \"stripe\",\n YUKI = \"yuki\",\n CLEARFACTS = \"clearfacts\",\n PONTO = \"ponto\",\n PQR = \"pqr\",\n MAILCHIMP = \"mailchimp\",\n CONVERTKIT = \"convertkit\",\n MAILSYNC = \"mailsync\",\n UNPAID = \"unpaid\",\n OUTLOOK = \"outlook\",\n GMAIL = \"gmail\",\n OCTOPUS = \"octopus\",\n}\n\nexport interface MarketplaceIntegration {\n id?: string;\n active?: boolean;\n new?: boolean;\n image?: string;\n icon?: string;\n title?: string;\n description?: string;\n connected?: boolean;\n theme?: {\n cover?: string;\n text?: string;\n button_text?: string;\n button_background?: string;\n };\n}\n\nexport interface Integration {\n id?: string;\n type?: IntegrationType;\n access_token?: string;\n refresh_token?: string;\n expires_at?: string;\n config?: IntegrationConfig;\n}\n\nexport interface IntegrationConfig {}\n\nexport interface MollieIntegrationConfig extends IntegrationConfig {\n profile_id?: string;\n}\n\nexport interface PontoIntegrationConfig extends IntegrationConfig {\n account_id?: string;\n}\n\nexport interface YukiIntegrationConfig extends IntegrationConfig {\n access_token?: string;\n administration_id?: string;\n}\n\nexport interface MailchimpIntegrationConfig extends IntegrationConfig {\n audience_id?: string;\n dc?: string;\n}\n\nexport interface ClearfactsIntegrationConfig extends IntegrationConfig {\n company_number?: string;\n}\n\nexport interface MailsyncIntegrationConfig extends IntegrationConfig {\n invoice_mailbox_address?: string;\n invoice_mailbox_subject?: string;\n expense_mailbox_address?: string;\n expense_mailbox_subject?: string;\n document_mailbox_address?: string;\n document_mailbox_subject?: string;\n}\n\nexport interface UnpaidIntegrationConfig extends IntegrationConfig {\n company_name?: string;\n address?: string;\n zip_code?: string;\n location?: string;\n country_code?: string;\n vat_number?: string;\n iban?: string;\n bic?: string;\n contact_name?: string;\n email?: string;\n phone_number?: string;\n}\n\nexport interface GmailIntegrationConfig extends IntegrationConfig {}\nexport interface GmailFormData {\n client_id: string;\n scopes: string[];\n}\n\nexport interface OctopusIntegrationConfig extends IntegrationConfig {\n username?: string;\n password?: string;\n dossier_id?: string;\n invoice_mailbox_address?: string;\n expense_mailbox_address?: string;\n document_mailbox_address?: string;\n}\n\nexport interface ConvertkitIntegrationConfig extends IntegrationConfig {\n api_key?: string;\n api_secret?: string;\n form_id?: string;\n}\n\nexport interface ConvertkitFormData {\n forms: { id: string; name: string }[];\n}\n\nexport interface IntegrationForm {\n type: IntegrationType;\n marketplace_integration: MarketplaceIntegration;\n integration: Integration;\n form_data: any;\n}\n\nexport interface MollieFormData {\n profiles?: { label: string; value: string }[];\n}\n\nexport interface PontoFormData {\n accounts?: { label: string; value: string }[];\n}\n\nexport interface MailchimpFormData {\n audiences: { label: string; value: string }[];\n}\n\nexport interface ClearfactsFormData {\n administrations: {\n name: string;\n company_number: string;\n emails: { type: string; email_address: string }[];\n company_type: string;\n address: {\n street_address: string;\n };\n }[];\n}\n\nexport interface UnpaidFormData {\n countries?: { label: string; value: string }[];\n}\n\nexport interface MailsyncFormData {\n smtp_configured: boolean;\n}\n\nexport interface OutlookFormData {\n admin_consent_url?: string;\n}\n\nexport interface OctopusFormData {\n dossiers?: { label: string; value: string }[];\n}\n\nexport interface LineItem {\n id?: string;\n title?: string;\n description?: string;\n quantity?: number | string;\n price?: number | string;\n discount?: number | string;\n discount_total?: number | string;\n second_tax?: number | string;\n ledger_item_id?: string;\n tax_rate?: number | string;\n tax_code?: string;\n subtotal?: number | string;\n net_total?: number | string;\n tax_total?: number | string;\n total?: number | string;\n entry_ids?: string[];\n expense_ids?: string[];\n product_ids?: string[];\n}\n\nexport type WorkspaceTaxTranslateableFields = {\n invoice_rule?: string;\n credit_note_rule?: string;\n};\n\nexport interface WorkspaceTax {\n id?: string;\n code?: string;\n name?: string;\n rate?: number | string;\n translations?: MobilityTranslations;\n vat_liabilities?: VATLiability[];\n}\n\nexport enum LedgerItemType {\n // t('LedgerItemType::order_form')\n ORDER_FORM = \"order_form\",\n // t('LedgerItemType::delivery_note')\n DELIVERY_NOTE = \"delivery_note\",\n // t('LedgerItemType::quotation')\n QUOTATION = \"quotation\",\n // t('LedgerItemType::pro_forma_invoice')\n PRO_FORMA_INVOICE = \"pro_forma_invoice\",\n // t('LedgerItemType::invoice')\n INVOICE = \"invoice\",\n // t('LedgerItemType::credit_note')\n CREDIT_NOTE = \"credit_note\",\n // t('LedgerItemType::recurring_invoice')\n RECURRING_INVOICE = \"recurring_invoice\",\n}\n\nexport interface ImportedProduct {\n productId: string;\n quantity: number;\n product: Product;\n}\n\nexport interface Product {\n id?: string;\n name?: string;\n notes?: string;\n description?: string;\n purchase_price?: number | string;\n price?: number | string;\n gross_price?: number | string;\n tax_rate?: number | string;\n tax_code?: string;\n stock?: number | string;\n minimum_stock?: number | string;\n sku?: string;\n barcode?: string;\n workspace_id?: string;\n supplier_id?: string;\n supplier?: Contact;\n physical?: boolean;\n custom_fields?: ModelCustomFieldsType;\n created_at?: string | Date;\n}\n\nexport type ProductColumnProperty = keyof Pick;\nexport const ProductColumns: ProductColumnProperty[] = [];\n\nexport type ProductFilterProperty = keyof Pick<\n Product,\n | \"name\"\n | \"price\"\n | \"purchase_price\"\n | \"gross_price\"\n | \"supplier_id\"\n | \"sku\"\n | \"barcode\"\n | \"stock\"\n | \"minimum_stock\"\n | \"physical\"\n | \"created_at\"\n>;\n\nexport const ProductFilters: ProductFilterProperty[] = [\n \"name\",\n \"price\",\n \"purchase_price\",\n \"gross_price\",\n \"supplier_id\",\n \"sku\",\n \"barcode\",\n \"stock\",\n \"minimum_stock\",\n \"physical\",\n \"created_at\",\n];\nexport type ProductFilter = ResourceFilter;\n\nexport interface Board {\n id?: string;\n name?: string;\n color?: string;\n archived?: boolean;\n contact_id?: string;\n contact?: Contact;\n project_id?: string;\n project?: Project;\n workspace_id?: string;\n lists?: BoardList[];\n}\n\nexport interface BoardTemplate {\n id?: string;\n name?: string;\n}\n\nexport interface BoardList {\n id?: string;\n name?: string;\n position?: number;\n board_id?: string;\n}\n\nexport interface BoardListMetadata {\n positions: number[];\n}\n\nexport interface BoardLabel {\n id?: string;\n name?: string;\n color?: string;\n board_id?: string;\n}\n\nexport interface Task {\n id?: string;\n name?: string;\n description?: string;\n start_on?: string | null;\n due_on?: string | null;\n completed?: boolean;\n position?: number;\n telephone_number?: string;\n location?: string;\n workspace_id?: string;\n board_id?: string;\n board?: Board;\n list_id?: string;\n list?: BoardList;\n cover_id?: string;\n deal_id?: string;\n cover?: BizzeyFile;\n labels?: BoardLabel[];\n label_ids?: string[];\n checklists?: TaskChecklist[];\n attachments?: BizzeyFile[];\n custom_fields?: ModelCustomFieldsType;\n assignee_ids?: string[];\n assignees?: User[];\n contact_id?: string;\n contact?: Contact;\n project_id?: string;\n project?: Project;\n playbook_id?: string;\n time_estimate?: number;\n time_planned?: number;\n time_remaining?: number;\n time_spent?: number;\n created_at?: string;\n}\n\nexport interface TaskChecklist {\n name?: string;\n position?: number;\n items?: TaskChecklistItem[];\n}\n\nexport interface TaskChecklistItem {\n name?: string;\n completed?: boolean;\n position?: number;\n}\n\nexport type NotificationType =\n | \"ledger_item_opened\"\n | \"invoice_paid\"\n | \"subscription_payment_failed\";\n\nexport enum WorkspaceCableEventType {\n START_TIMER = \"START_TIMER\",\n UPDATE_TIMER = \"UPDATE_TIMER\",\n PAUSE_TIMER = \"PAUSE_TIMER\",\n STOP_TIMER = \"STOP_TIMER\",\n RESET_TIMER = \"RESET_TIMER\",\n CREATE_TIME_ENTRY = \"CREATE_TIME_ENTRY\",\n UPDATE_TIME_ENTRY = \"UPDATE_TIME_ENTRY\",\n DELETE_TIME_ENTRY = \"DELETE_TIME_ENTRY\",\n}\n\nexport enum WorkspaceEvents {\n UPDATE_TIMER = \"UPDATE_TIMER\",\n}\n\n// DEPRECATING THIS\nexport type WorkspaceCableEvent =\n | StartTimerEvent\n | PauseTimerEvent\n | StopTimerEvent\n | ResetTimerEvent\n | CreateTimeEntryEvent\n | UpdateTimeEntryEvent\n | DeleteTimeEntryEvent;\n\nexport interface WorkspaceCableEventBase {\n type: WorkspaceCableEventType;\n data: object;\n}\n\nexport interface StartTimerEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.START_TIMER;\n data: {\n entry: TimeEntry;\n };\n}\n\nexport interface PauseTimerEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.PAUSE_TIMER;\n data: {\n entry: TimeEntry;\n };\n}\n\nexport interface StopTimerEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.STOP_TIMER;\n data: {\n entry: TimeEntry;\n };\n}\n\nexport interface ResetTimerEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.RESET_TIMER;\n data: {\n entry: TimeEntry;\n };\n}\n\nexport interface CreateTimeEntryEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.CREATE_TIME_ENTRY;\n data: {\n entry: TimeEntry;\n };\n}\n\nexport interface UpdateTimeEntryEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.UPDATE_TIME_ENTRY;\n data: {\n entry: {\n entry: TimeEntry;\n };\n };\n}\n\nexport interface DeleteTimeEntryEvent extends WorkspaceCableEventBase {\n type: WorkspaceCableEventType.DELETE_TIME_ENTRY;\n data: {\n entry: TimeEntry;\n };\n}\n\n// END DEPRECATION\n\nexport enum WorkspaceChannelEventType {\n WORKSPACE_CREATE = \"WORKSPACE_CREATE\",\n WORKSPACE_UPDATE = \"WORKSPACE_UPDATE\",\n WORKSPACE_DELETE = \"WORKSPACE_DELETE\",\n\n SUBSCRIPTION_CREATE = \"SUBSCRIPTION_CREATE\",\n SUBSCRIPTION_UPDATE = \"SUBSCRIPTION_UPDATE\",\n SUBSCRIPTION_DELETE = \"SUBSCRIPTION_DELETE\",\n\n SETTING_CREATE = \"SETTING_CREATE\",\n SETTING_UPDATE = \"SETTING_UPDATE\",\n SETTING_DELETE = \"SETTING_DELETE\",\n\n DEAL_STAGE_CREATE = \"DEAL_STAGE_CREATE\",\n DEAL_STAGE_UPDATE = \"DEAL_STAGE_UPDATE\",\n DEAL_STAGE_DELETE = \"DEAL_STAGE_DELETE\",\n\n DEAL_CREATE = \"DEAL_CREATE\",\n DEAL_UPDATE = \"DEAL_UPDATE\",\n DEAL_DELETE = \"DEAL_DELETE\",\n\n BOARD_CREATE = \"BOARD_CREATE\",\n BOARD_UPDATE = \"BOARD_UPDATE\",\n BOARD_DELETE = \"BOARD_DELETE\",\n\n BOARD_LABEL_CREATE = \"BOARD_LABEL_CREATE\",\n BOARD_LABEL_UPDATE = \"BOARD_LABEL_UPDATE\",\n BOARD_LABEL_DELETE = \"BOARD_LABEL_DELETE\",\n\n BOARD_LIST_CREATE = \"BOARD_LIST_CREATE\",\n BOARD_LIST_UPDATE = \"BOARD_LIST_UPDATE\",\n BOARD_LIST_DELETE = \"BOARD_LIST_DELETE\",\n\n TASK_CREATE = \"TASK_CREATE\",\n TASK_UPDATE = \"TASK_UPDATE\",\n TASK_DELETE = \"TASK_DELETE\",\n\n LEDGER_ITEM_ATTACHMENTS_READY = \"LEDGER_ITEM_ATTACHMENTS_READY\",\n\n ACCOUNT_CREATE = \"ACCOUNT_CREATE\",\n ACCOUNT_UPDATE = \"ACCOUNT_UPDATE\",\n ACCOUNT_DELETE = \"ACCOUNT_DELETE\",\n\n TRANSACTION_CREATE = \"TRANSACTION_CREATE\",\n TRANSACTION_UPDATE = \"TRANSACTION_UPDATE\",\n TRANSACTION_DELETE = \"TRANSACTION_DELETE\",\n}\n\nexport interface WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType;\n data: object;\n}\n\nexport interface WorkspaceChannelCreateWorkspaceEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.WORKSPACE_CREATE;\n data: { workspace: Workspace };\n}\n\nexport interface WorkspaceChannelUpdateWorkspaceEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.WORKSPACE_UPDATE;\n data: { workspace: Workspace };\n}\n\nexport interface WorkspaceChannelDeleteWorkspaceEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.WORKSPACE_DELETE;\n data: { workspace_id: string };\n}\n\nexport interface WorkspaceChannelCreateSubscriptionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SUBSCRIPTION_CREATE;\n data: { subscription: Subscription };\n}\n\nexport interface WorkspaceChannelUpdateSubscriptionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SUBSCRIPTION_UPDATE;\n data: { subscription: Subscription };\n}\n\nexport interface WorkspaceChannelDeleteSubscriptionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SUBSCRIPTION_DELETE;\n data: { workspace_id: string; subscription_id: string };\n}\n\nexport interface WorkspaceChannelCreateSettingEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SETTING_CREATE;\n data: { setting: Settings };\n}\n\nexport interface WorkspaceChannelUpdateSettingEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SETTING_UPDATE;\n data: { setting: Settings };\n}\n\nexport interface WorkspaceChannelDeleteSettingEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.SETTING_DELETE;\n data: { setting_id: string };\n}\n\nexport interface WorkspaceChannelCreateDealStageEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_STAGE_CREATE;\n data: { deal_stage: DealStage };\n}\n\nexport interface WorkspaceChannelUpdateDealStageEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_STAGE_UPDATE;\n data: { deal_stage: DealStage };\n}\n\nexport interface WorkspaceChannelDeleteDealStageEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_STAGE_DELETE;\n data: { deal_stage_id: string };\n}\n\nexport interface WorkspaceChannelCreateDealEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_CREATE;\n data: { deal: Deal };\n}\n\nexport interface WorkspaceChannelUpdateDealEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_UPDATE;\n data: { deal: Deal };\n}\n\nexport interface WorkspaceChannelDeleteDealEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.DEAL_DELETE;\n data: { deal_id: string };\n}\n\nexport interface WorkspaceChannelCreateBoardEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_CREATE;\n data: { board: Board };\n}\n\nexport interface WorkspaceChannelUpdateBoardEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_UPDATE;\n data: { board: Board };\n}\n\nexport interface WorkspaceChannelDeleteBoardEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_DELETE;\n data: { board_id: string };\n}\n\nexport interface WorkspaceChannelCreateBoardLabelEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LABEL_CREATE;\n data: { board_label: BoardLabel };\n}\n\nexport interface WorkspaceChannelUpdateBoardLabelEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LABEL_UPDATE;\n data: { board_label: BoardLabel };\n}\n\nexport interface WorkspaceChannelDeleteBoardLabelEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LABEL_DELETE;\n data: { board_id: string; board_label_id: string };\n}\n\nexport interface WorkspaceChannelCreateBoardListEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LIST_CREATE;\n data: { board_list: BoardList };\n}\n\nexport interface WorkspaceChannelUpdateBoardListEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LIST_UPDATE;\n data: { board_list: BoardList };\n}\n\nexport interface WorkspaceChannelDeleteBoardListEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.BOARD_LIST_DELETE;\n data: { board_id: string; board_list_id: string };\n}\n\nexport interface WorkspaceChannelCreateTaskEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TASK_CREATE;\n data: { task: Task };\n}\n\nexport interface WorkspaceChannelUpdateTaskEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TASK_UPDATE;\n data: { task: Task };\n}\n\nexport interface WorkspaceChannelDeleteTaskEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TASK_DELETE;\n data: { board_id?: string; task_id: string };\n}\n\nexport interface WorkspaceChannelLedgerItemAttachmentsReadyEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.LEDGER_ITEM_ATTACHMENTS_READY;\n data: { ledger_item: LedgerItem };\n}\n\nexport interface WorkspaceChannelCreateAccountEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.ACCOUNT_CREATE;\n data: { account: Account };\n}\n\nexport interface WorkspaceChannelUpdateAccountEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.ACCOUNT_UPDATE;\n data: { account: Account };\n}\n\nexport interface WorkspaceChannelDeleteAccountEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.ACCOUNT_DELETE;\n data: { account_id: string };\n}\n\nexport interface WorkspaceChannelCreateTransactionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TRANSACTION_CREATE;\n data: { transaction: Transaction };\n}\n\nexport interface WorkspaceChannelUpdateTransactionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TRANSACTION_UPDATE;\n data: { transaction: Transaction };\n}\n\nexport interface WorkspaceChannelDeleteTransactionEvent\n extends WorkspaceChannelEventBase {\n type: WorkspaceChannelEventType.TRANSACTION_DELETE;\n data: { transaction_id: string };\n}\n\nexport type WorkspaceChannelEvent =\n | WorkspaceChannelCreateWorkspaceEvent\n | WorkspaceChannelUpdateWorkspaceEvent\n | WorkspaceChannelDeleteWorkspaceEvent\n | WorkspaceChannelCreateSubscriptionEvent\n | WorkspaceChannelUpdateSubscriptionEvent\n | WorkspaceChannelDeleteSubscriptionEvent\n | WorkspaceChannelCreateSettingEvent\n | WorkspaceChannelUpdateSettingEvent\n | WorkspaceChannelDeleteSettingEvent\n | WorkspaceChannelCreateDealStageEvent\n | WorkspaceChannelUpdateDealStageEvent\n | WorkspaceChannelDeleteDealStageEvent\n | WorkspaceChannelCreateDealEvent\n | WorkspaceChannelUpdateDealEvent\n | WorkspaceChannelDeleteDealEvent\n | WorkspaceChannelCreateBoardEvent\n | WorkspaceChannelUpdateBoardEvent\n | WorkspaceChannelDeleteBoardEvent\n | WorkspaceChannelCreateBoardLabelEvent\n | WorkspaceChannelUpdateBoardLabelEvent\n | WorkspaceChannelDeleteBoardLabelEvent\n | WorkspaceChannelCreateBoardListEvent\n | WorkspaceChannelUpdateBoardListEvent\n | WorkspaceChannelDeleteBoardListEvent\n | WorkspaceChannelCreateTaskEvent\n | WorkspaceChannelUpdateTaskEvent\n | WorkspaceChannelDeleteTaskEvent\n | WorkspaceChannelLedgerItemAttachmentsReadyEvent\n | WorkspaceChannelCreateAccountEvent\n | WorkspaceChannelUpdateAccountEvent\n | WorkspaceChannelDeleteAccountEvent\n | WorkspaceChannelCreateTransactionEvent\n | WorkspaceChannelUpdateTransactionEvent\n | WorkspaceChannelDeleteTransactionEvent;\n\nexport interface ExpenseCategory {\n id?: string;\n name?: string;\n color?: string;\n editable?: boolean;\n parent_id?: string;\n workspace_id?: string;\n sub_categories?: ExpenseCategory[];\n parent_category?: ExpenseCategory | null;\n}\n\nexport interface LedgerItemTemplate {\n id?: string;\n name?: string;\n premium?: boolean;\n enabled?: boolean;\n cover_url?: string;\n}\n\nexport interface ReferralSource {\n id?: string;\n name?: string;\n}\n\nexport enum ImportTimeEntryGroupByOption {\n CUSTOM_DESCRIPTION = \"custom_description\",\n DESCRIPTION = \"description\",\n WORK_TYPE = \"work_type\",\n DATE = \"date\",\n DATE_HOUR_DESCRIPTION = \"date_hour_description\",\n}\n\nexport interface GroupedTimeEntries {\n description: string;\n rate: number;\n entries: TimeEntry[];\n fixed_rate: boolean;\n}\n\nexport type PermissionRole = \"owner\" | \"accountant\";\n\nexport interface Accountant {\n id?: string;\n email?: string;\n workspace?: Workspace;\n}\n\nexport interface AccountantCurrentUser extends Accountant {}\n\nexport interface Device {\n id?: string;\n token?: string | null | undefined;\n user_id?: string;\n}\n\nexport enum MimeTypes {\n ALL = \"*\",\n PDF = \"application/pdf\",\n JPEG = \"image/jpeg\",\n JPG = \"image/jpg\",\n PNG = \"image/png\",\n GIF = \"image/gif\",\n SVG = \"image/svg+xml\",\n CSV = \"text/csv\",\n EXCEL = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n TEXT_XML = \"text/xml\",\n APPLICATION_XML = \"application/xml\",\n}\n\nexport type PaymentForm = MolliePaymentForm | StripePaymentForm;\n\nexport interface MolliePaymentForm {\n type: IntegrationType.MOLLIE;\n data: {\n id: string;\n _links: {\n checkout: {\n href: string;\n };\n };\n };\n}\n\nexport interface StripePaymentForm {\n type: IntegrationType.STRIPE;\n data: {\n public_key: string;\n account_id: string;\n session_id: string;\n };\n}\n\nexport enum BizzeyFileType {\n DIRECTORY = \"directory\",\n FILE = \"file\",\n}\n\nexport enum BizzeyFileResourceType {\n CONTACT = \"Contact\",\n PROJECT = \"Project\",\n TASK = \"Task\",\n WORKSPACE = \"Workspace\",\n DEAL = \"Deal\",\n}\n\nexport interface BizzeyFile {\n id?: string;\n name?: string;\n type?: BizzeyFileType;\n parent_file_id?: string;\n attachment_file_name?: string;\n attachment_content_type?: string;\n attachment_file_size?: number;\n attachment_url?: string | null;\n attachment_download_url?: string | null;\n attachment?: any;\n resource_type?: BizzeyFileResourceType;\n resource_id?: string;\n created_at?: string;\n updated_at?: string;\n}\n\nexport interface InvoiceMetadata {\n project_budget?: number;\n unbilled_time_entries: {\n count: number;\n amount: number;\n };\n unbilled_expenses: {\n count: number;\n amount: number;\n };\n advancement_invoices: {\n quotation_number?: string;\n count?: number;\n remaining_net_amount?: number;\n };\n}\n\nexport enum SmtpAuthType {\n LOGIN = \"login\",\n PLAIN = \"plain\",\n CRAM_MD5 = \"cram-md5\",\n}\n\nexport enum SmtpSSLType {\n SSL = \"ssl\",\n TLS = \"tls\",\n}\nexport interface SMTP {\n id?: string;\n helo_domain?: string;\n domain?: string;\n username?: string;\n password?: string;\n auth_type?: SmtpAuthType;\n ssl_type?: SmtpSSLType;\n port?: number;\n from_name?: string;\n from_email?: string;\n}\n\nexport interface SendEmailParams {\n to?: string[];\n cc?: string[];\n bcc?: string[];\n subject?: string;\n body?: string;\n attachment_ids?: string[];\n test_email?: boolean;\n}\n\nexport interface SendLedgerItemEmailParams {\n ledger_item_id: string;\n to: string[];\n cc: string[];\n bcc: string[];\n subject: string;\n body: string;\n reminder?: boolean;\n attach_ledger_item?: boolean;\n attachment_ids: string[];\n test_email?: boolean;\n}\n\nexport interface PreviewAttachment {\n id: string;\n name: string;\n url: string;\n file_size: number;\n content_type: string;\n created_at?: string;\n}\n\nexport enum CustomFieldType {\n // i18n.t('CustomFieldType::string')\n STRING = \"string\",\n // i18n.t('CustomFieldType::text')\n TEXT = \"text\",\n // i18n.t('CustomFieldType::single_option')\n SINGLE_OPTION = \"single_option\",\n // i18n.t('CustomFieldType::multiple_option')\n MULTIPLE_OPTION = \"multiple_option\",\n // i18n.t('CustomFieldType::date')\n DATE = \"date\",\n // i18n.t('CustomFieldType::money')\n MONEY = \"money\",\n // i18n.t('CustomFieldType::number')\n NUMBER = \"number\",\n // i18n.t('CustomFieldType::boolean')\n BOOLEAN = \"boolean\",\n // i18n.t('CustomFieldType::email')\n EMAIL = \"email\",\n // i18n.t('CustomFieldType::phone_number')\n PHONE_NUMBER = \"phone_number\",\n // i18n.t('CustomFieldType::url')\n URL = \"url\",\n}\n\nexport enum CustomFieldModel {\n // i18n.t('CustomFieldModel::contact')\n // i18n.t('CustomFieldModel::contact_plural')\n CLIENT = \"contact\",\n // i18n.t('CustomFieldModel::supplier')\n // i18n.t('CustomFieldModel::supplier_plural')\n SUPPLIER = \"supplier\",\n // i18n.t('CustomFieldModel::project')\n // i18n.t('CustomFieldModel::project_plural')\n PROJECT = \"project\",\n // i18n.t('CustomFieldModel::time_entry')\n // i18n.t('CustomFieldModel::time_entry_plural')\n TIME_ENTRY = \"time_entry\",\n // i18n.t('CustomFieldModel::invoice')\n // i18n.t('CustomFieldModel::invoice_plural')\n INVOICE = \"invoice\",\n // i18n.t('CustomFieldModel::expense')\n // i18n.t('CustomFieldModel::expense_plural')\n EXPENSE = \"expense\",\n // i18n.t('CustomFieldModel::product')\n // i18n.t('CustomFieldModel::product_plural')\n PRODUCT = \"product\",\n // i18n.t('CustomFieldModel::task')\n // i18n.t('CustomFieldModel::task_plural')\n TASK = \"task\",\n // i18n.t('CustomFieldModel::calendar_event')\n // i18n.t('CustomFieldModel::calendar_event_plural')\n CALENDAR_EVENT = \"calendar_event\",\n}\n\nexport interface SingleOptionCustomFieldConfig {\n options: { label: string; value: string }[];\n}\nexport interface MultipleOptionCustomFieldConfig {\n options: { label: string; value: string }[];\n}\n\nexport type CustomFieldConfig =\n | object\n | SingleOptionCustomFieldConfig\n | MultipleOptionCustomFieldConfig;\n\nexport interface CustomFieldBase {\n id?: string;\n name?: string;\n type?: CustomFieldType | string;\n model?: CustomFieldModel | string;\n required?: boolean;\n position?: number;\n workspace_id?: string;\n config?: CustomFieldConfig;\n}\n\nexport interface StringCustomField extends CustomFieldBase {\n type: CustomFieldType.STRING;\n}\n\nexport interface TextCustomField extends CustomFieldBase {\n type: CustomFieldType.TEXT;\n}\n\nexport interface SingleOptionCustomField extends CustomFieldBase {\n type: CustomFieldType.SINGLE_OPTION;\n config?: {\n options: { label: string; value: string }[];\n allowOptionCreation?: boolean;\n };\n}\n\nexport interface MultipleOptionCustomField extends CustomFieldBase {\n type: CustomFieldType.MULTIPLE_OPTION;\n config?: {\n options: { label: string; value: string }[];\n allowOptionCreation?: boolean;\n };\n}\n\nexport interface DateCustomField extends CustomFieldBase {\n type: CustomFieldType.DATE;\n}\n\nexport interface MoneyCustomField extends CustomFieldBase {\n type: CustomFieldType.MONEY;\n}\n\nexport interface NumberCustomField extends CustomFieldBase {\n type: CustomFieldType.NUMBER;\n}\n\nexport interface BooleanCustomField extends CustomFieldBase {\n type: CustomFieldType.BOOLEAN;\n}\n\nexport interface EmailCustomField extends CustomFieldBase {\n type: CustomFieldType.EMAIL;\n}\n\nexport interface PhonenumberCustomField extends CustomFieldBase {\n type: CustomFieldType.PHONE_NUMBER;\n}\n\nexport interface UrlCustomField extends CustomFieldBase {\n type: CustomFieldType.URL;\n}\n\nexport type CustomField =\n | StringCustomField\n | TextCustomField\n | SingleOptionCustomField\n | MultipleOptionCustomField\n | DateCustomField\n | MoneyCustomField\n | NumberCustomField\n | BooleanCustomField\n | EmailCustomField\n | PhonenumberCustomField\n | UrlCustomField;\n\nexport type ModelCustomFieldsType = {\n [key: string]: any;\n};\n\nexport enum ResourceListFilterType {\n STRING = \"text\",\n SINGLE_OPTION = \"single_option\",\n SINGLE_RESOURCE = \"single_resource\",\n MULTI_RESOURCE = \"multi_resource\",\n MULTIPLE_OPTION = \"multiple_option\",\n DATE = \"date\",\n NUMBER = \"number\",\n BOOLEAN = \"boolean\",\n}\n\nexport enum ResourceListFilterPredicate {\n // i18n.t('ResourceListFilterPredicate::contains')\n CONTAINS = \"contains\",\n // i18n.t('ResourceListFilterPredicate::equals')\n EQUALS = \"equals\",\n // i18n.t('ResourceListFilterPredicate::between')\n BETWEEN = \"between\",\n // i18n.t('ResourceListFilterPredicate::greaterThan')\n GREATER_THAN = \"greaterThan\",\n // i18n.t('ResourceListFilterPredicate::lessThan')\n LESS_THAN = \"lessThan\",\n // i18n.t('ResourceListFilterPredicate::isAfter')\n IS_AFTER = \"isAfter\",\n // i18n.t('ResourceListFilterPredicate::isAfterOrOn')\n IS_AFTER_OR_ON = \"isAfterOrOn\",\n // i18n.t('ResourceListFilterPredicate::isBefore')\n IS_BEFORE = \"isBefore\",\n // i18n.t('ResourceListFilterPredicate::isBeforeOrOn')\n IS_BEFORE_OR_ON = \"isBeforeOrOn\",\n // i18n.t('ResourceListFilterPredicate::present')\n PRESENT = \"present\",\n}\n\nexport interface ResourceFilterBase {\n name: T;\n label: string;\n visible?: boolean;\n}\n\nexport interface StringResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.STRING;\n}\n\nexport interface SingleOptionResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.SINGLE_OPTION;\n options: { label: string; value: string }[];\n}\n\nexport interface SingleResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.SINGLE_RESOURCE;\n resourceType: ResourceCreatablePowerSelectType;\n params?: { [key: string]: any };\n createParams?: object;\n isValidNewOption?: (\n inputValue: string,\n value: { label: string; value: string },\n options: any\n ) => boolean;\n}\n\nexport interface MultiResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.MULTI_RESOURCE;\n resourceType: ResourceCreatablePowerSelectType;\n params?: { [key: string]: any };\n createParams?: object;\n isValidNewOption?: (\n inputValue: string,\n value: { label: string; value: string },\n options: any\n ) => boolean;\n}\n\nexport interface MultipleOptionResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.MULTIPLE_OPTION;\n options: { label: string; value: string }[];\n}\n\nexport interface DateResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.DATE;\n}\n\nexport interface NumberResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.NUMBER;\n}\n\nexport interface BooleanResourceFilter extends ResourceFilterBase {\n type: ResourceListFilterType.BOOLEAN;\n}\n\nexport type ResourceFilter =\n | StringResourceFilter\n | SingleOptionResourceFilter\n | SingleResourceFilter\n | MultiResourceFilter\n | MultipleOptionResourceFilter\n | DateResourceFilter\n | NumberResourceFilter\n | BooleanResourceFilter;\n\nexport interface IPositionable {\n position?: number;\n}\n\n/**\n * Used to define events related to a resource\n */\nexport enum CalendarResourceType {\n PROJECT_EVENT_TYPE = \"project\",\n QUOTATION_EVENT_TYPE = \"quotation\",\n INVOICE_EVENT_TYPE = \"invoice\",\n TASK_EVENT_TYPE = \"task\",\n CALENDAR_EVENT_TYPE = \"calendar_event\",\n DEAL_EVENT_TYPE = \"deal\",\n}\n\nexport enum CalendarEventReminderType {\n // i18n.t('CalendarEventReminderType::notification')\n NOTIFICATION = \"notification\",\n // i18n.t('CalendarEventReminderType::email')\n EMAIL = \"email\",\n}\n\nexport enum CalendarEventReminderUnit {\n // i18n.t('CalendarEventReminderUnit::minute')\n // i18n.t('CalendarEventReminderUnit::minute_plural')\n MINUTE = \"minute\",\n // i18n.t('CalendarEventReminderUnit::hour')\n // i18n.t('CalendarEventReminderUnit::hour_plural')\n HOUR = \"hour\",\n // i18n.t('CalendarEventReminderUnit::day')\n // i18n.t('CalendarEventReminderUnit::day_plural')\n DAY = \"day\",\n // i18n.t('CalendarEventReminderUnit::week')\n // i18n.t('CalendarEventReminderUnit::week_plural')\n WEEK = \"week\",\n}\nexport interface CalendarEventReminder {\n type?: CalendarEventReminderType;\n interval?: number;\n interval_unit?: CalendarEventReminderUnit;\n}\n\nexport enum CalendarEventType {\n // i18n.t('CalendarEventType::event')\n EVENT = \"event\",\n // i18n.t('CalendarEventType::appointment')\n APPOINTMENT = \"appointment\",\n // i18n.t('CalendarEventType::call')\n CALL = \"call\",\n // i18n.t('CalendarEventType::focus_time')\n FOCUS_TIME = \"focus_time\",\n // i18n.t('CalendarEventType::leave')\n HOLIDAY = \"leave\",\n}\n\nexport enum CalendarEventStatus {\n // i18n.t('CalendarEventStatus::confirmed')\n CONFIRMED = \"confirmed\",\n // i18n.t('CalendarEventStatus::tentative')\n TENTATIVE = \"tentative\",\n // i18n.t('CalendarEventStatus::cancelled')\n CANCELLED = \"cancelled\",\n}\n\nexport enum CalendarEventProvider {\n // i18n.t('CalendarEventProvider::google')\n GOOGLE = \"google\",\n // i18n.t('CalendarEventProvider::microsoft')\n MICROSOFT = \"microsoft\",\n}\n\nexport enum CalendarEventAttendeeStatus {\n ACTION_REQUIRED = \"action_required\",\n DECLINED = \"declined\",\n TENTATIVE = \"tentative\",\n ACCEPTED = \"accepted\",\n}\n\nexport interface CalendarEventAttendee {\n id?: string;\n calendar_event_id?: string;\n calendar_event?: CalendarEvent;\n contact_id?: string;\n contact?: Contact;\n status?: CalendarEventAttendeeStatus;\n _destroy?: boolean;\n}\n\nexport interface CalendarEvent {\n id?: string;\n title?: string;\n type?: CalendarEventType;\n status?: CalendarEventStatus;\n start?: string | Date;\n end?: string | Date;\n timezone?: string;\n all_day?: boolean;\n recurring_schedule?: RecurringSchedule;\n location?: string;\n description?: string;\n attendees?: CalendarEventAttendee[];\n reminders?: CalendarEventReminder[];\n provider?: CalendarEventProvider;\n uid?: string;\n meeting_link?: string;\n custom_fields?: ModelCustomFieldsType;\n contact?: Contact;\n project?: Project;\n contact_id?: string;\n project_id?: string;\n deal_id?: string;\n user?: User;\n user_id?: string;\n workspace_id?: string;\n created_at?: string;\n}\n\nexport enum CalendarViewEventType {\n // i18n.t('CalendarViewEventType::calendar_event')\n // i18n.t('CalendarViewEventType::calendar_event_plural')\n CALENDAR_EVENT = \"calendar_event\",\n // i18n.t('CalendarViewEventType::project')\n // i18n.t('CalendarViewEventType::project_plural')\n PROJECT = \"project\",\n // i18n.t('CalendarViewEventType::quotation')\n // i18n.t('CalendarViewEventType::quotation_plural')\n QUOTATION = \"quotation\",\n // i18n.t('CalendarViewEventType::invoice')\n // i18n.t('CalendarViewEventType::invoice_plural')\n INVOICE = \"invoice\",\n // i18n.t('CalendarViewEventType::recurring_invoice')\n // i18n.t('CalendarViewEventType::recurring_invoice_plural')\n RECURRING_INVOICE = \"recurring_invoice\",\n // i18n.t('CalendarViewEventType::task')\n // i18n.t('CalendarViewEventType::task_plural')\n TASK = \"task\",\n // i18n.t('CalendarViewEventType::planned_task')\n // i18n.t('CalendarViewEventType::planned_task_plural')\n PLANNED_TASK = \"planned_task\",\n // i18n.t('CalendarViewEventType::deal')\n // i18n.t('CalendarViewEventType::deal_plural')\n DEAL = \"deal\",\n}\n\nexport interface CalendarViewEventBase {\n title?: string;\n start?: Date;\n end?: Date;\n all_day?: boolean;\n type: CalendarViewEventType;\n disabled?: boolean;\n}\n\nexport interface CalendarViewProjectEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.PROJECT;\n resource: Project;\n}\n\nexport interface CalendarViewQuotationEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.QUOTATION;\n resource: LedgerItem;\n}\n\nexport interface CalendarViewInvoiceEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.INVOICE;\n resource: LedgerItem;\n}\n\nexport interface CalendarViewRecurringInvoiceEvent\n extends CalendarViewEventBase {\n type: CalendarViewEventType.RECURRING_INVOICE;\n resource: LedgerItem;\n}\n\nexport interface CalendarViewTaskEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.TASK;\n resource: Task;\n}\n\nexport interface CalendarViewPlannedTaskEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.PLANNED_TASK;\n resource: Task;\n}\n\nexport interface CalendarViewCalendarEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.CALENDAR_EVENT;\n resource: CalendarEvent;\n}\n\nexport interface CalendarViewDealEvent extends CalendarViewEventBase {\n type: CalendarViewEventType.DEAL;\n resource: Deal;\n}\n\nexport type CalendarViewEvent =\n | CalendarViewProjectEvent\n | CalendarViewQuotationEvent\n | CalendarViewInvoiceEvent\n | CalendarViewRecurringInvoiceEvent\n | CalendarViewTaskEvent\n | CalendarViewPlannedTaskEvent\n | CalendarViewCalendarEvent\n | CalendarViewDealEvent;\n\nexport type ResourceCreatablePowerSelectType =\n | \"company\"\n | \"person\"\n | \"contact\"\n | \"company_with_email\"\n | \"person_with_email\"\n | \"contact_with_email\"\n | \"contact_group\"\n | \"project\"\n | \"user\"\n | \"contact\"\n | \"deal_stage\"\n | \"deal\"\n | \"work_type\"\n | \"board\"\n | \"board_list\"\n | \"document_tag\"\n | \"playbook\"\n | \"sequence\"\n | \"account\";\n\nexport interface DisplayableError {\n field: string;\n message: string;\n}\n\nexport interface ExtractionTax {\n code?: string;\n amount?: number;\n rate?: number;\n}\n\nexport interface ExtractionLineItem {\n description?: string;\n product_code?: string;\n quantity?: number;\n price?: number;\n tax_amount?: number;\n tax_rate?: number;\n total_amount?: number;\n}\n\nexport interface InvoiceExtractionData {\n type: \"invoice\";\n currency?: string;\n issue_date?: string;\n due_date?: string;\n locale?: string;\n supplier_account_number?: string;\n supplier_address?: string;\n supplier_iban?: string;\n supplier_name?: string;\n supplier_routing_number?: string;\n supplier_swift?: string;\n supplier_vat?: string;\n taxes?: Array;\n total_exclusive?: number;\n total_inclusive?: number;\n total_tax?: number;\n line_items?: Array;\n}\n\nexport type ReceiptExtractionCategory =\n | \"accommodation\"\n | \"food\"\n | \"gasoline\"\n | \"parking\"\n | \"transport\"\n | \"toll\"\n | \"miscellaneous\";\nexport interface ReceiptExtractionData {\n type: \"receipt\";\n currency?: string;\n country?: string;\n issue_date?: string;\n time?: string;\n locale?: string;\n supplier_name?: string;\n supplier_vat?: string | null;\n taxes?: Array;\n total_exclusive?: number;\n total_inclusive?: number;\n total_tax?: number;\n category: ReceiptExtractionCategory;\n}\n\nexport interface UBLExtractionData {\n type: \"ubl\";\n data: UBLData;\n}\n\nexport type ExpenseExtractionData =\n | InvoiceExtractionData\n | ReceiptExtractionData\n | UBLExtractionData;\n\nexport enum ContractStatus {\n // i18n.t('ContractStatus::draft')\n DRAFT = \"draft\",\n // i18n.t('ContractStatus::pending')\n PENDING = \"pending\",\n // i18n.t('ContractStatus::signed')\n SIGNED = \"signed\",\n // i18n.t('ContractStatus::rejected')\n REJECTED = \"rejected\",\n}\n\nexport interface Contract {\n id?: string;\n name?: string;\n status?: ContractStatus;\n workspace_id?: string;\n contact_id?: string;\n contact?: Contact;\n project_id?: string;\n project?: Project;\n signees?: Contact[];\n signee_ids?: string[];\n created_at?: string;\n content_blocks?: ContentBlock[];\n signatures?: Signature[];\n}\n\nexport enum ContentBlockResource {\n CONTRACT = \"contract\",\n PROPOSAL = \"proposal\",\n FORM = \"form\",\n PLAYBOOK = \"playbook\",\n CONTENT_BLOCK_TEMPLATE = \"content_block_template\",\n}\n\nexport enum ContentBlockType {\n // i18n.t('ContentBlockType::text')\n TEXT = \"text\",\n // i18n.t('ContentBlockType::image')\n IMAGE = \"image\",\n // i18n.t('ContentBlockType::sign')\n SIGN = \"sign\",\n // i18n.t('ContentBlockType::intro')\n INTRO = \"intro\",\n // i18n.t('ContentBlockType::items')\n ITEMS = \"items\",\n // i18n.t('ContentBlockType::summary')\n SUMMARY = \"summary\",\n // i18n.t('ContentBlockType::input')\n INPUT = \"input\",\n // i18n.t('ContentBlockType::address_input')\n ADDRESS_INPUT = \"address_input\",\n // i18n.t('ContentBlockType::countries_input')\n COUNTRIES_INPUT = \"countries_input\",\n // i18n.t('ContentBlockType::date_input')\n DATE_INPUT = \"date_input\",\n // i18n.t('ContentBlockType::dropdown_input')\n DROPDOWN_INPUT = \"dropdown_input\",\n // i18n.t('ContentBlockType::email_input')\n EMAIL_INPUT = \"email_input\",\n // i18n.t('ContentBlockType::file_upload_input')\n FILE_UPLOAD_INPUT = \"file_upload_input\",\n // i18n.t('ContentBlockType::link_input')\n LINK_INPUT = \"link_input\",\n // i18n.t('ContentBlockType::long_text_input')\n LONG_TEXT_INPUT = \"long_text_input\",\n // i18n.t('ContentBlockType::number_input')\n NUMBER_INPUT = \"number_input\",\n // i18n.t('ContentBlockType::phone_number_input')\n PHONE_NUMBER_INPUT = \"phone_number_input\",\n // i18n.t('ContentBlockType::text_input')\n TEXT_INPUT = \"text_input\",\n // i18n.t('ContentBlockType::slider_input')\n SLIDER_INPUT = \"slider_input\",\n // i18n.t('ContentBlockType::submit')\n SUBMIT = \"submit\",\n // i18n.t('ContentBlockType::pdf')\n PDF = \"pdf\",\n // i18n.t('ContentBlockType::question_and_answer')\n QUESTION_AND_ANSWER = \"question_and_answer\",\n}\n\nexport interface ContentBlockBase {\n id?: string;\n position?: number;\n type?: ContentBlockType;\n}\n\nexport interface TextBlock extends ContentBlockBase {\n type: ContentBlockType.TEXT;\n content?: string;\n}\n\nexport interface ImageBlock extends ContentBlockBase {\n type: ContentBlockType.IMAGE;\n image_url?: string | null;\n}\n\nexport interface PDFBlock extends ContentBlockBase {\n type: ContentBlockType.PDF;\n pdf_url?: string | null;\n image_urls?: string[];\n}\n\nexport interface SignBlock extends ContentBlockBase {\n type: ContentBlockType.SIGN;\n title?: string;\n description?: string;\n action?: string;\n}\n\nexport interface IntroBlock extends ContentBlockBase {\n type: ContentBlockType.INTRO;\n to?: string;\n from?: string;\n}\n\nexport enum ItemsView {\n // t('ItemsView::table')\n TABLE = \"table\",\n // t('ItemsView::card')\n CARD = \"card\",\n}\n\nexport enum ItemsSelectionType {\n SINGLE = \"single\",\n MULTI = \"multi\",\n}\n\nexport enum ItemsSelectionRequirementType {\n REQUIRED = \"required\",\n OPTIONAL = \"optional\",\n}\n\nexport interface ItemBlock {\n id?: string;\n cover?: string;\n title?: string;\n description?: string;\n amount?: number;\n quantity?: number;\n tax_rate?: number;\n tax_code?: string;\n discount?: number;\n selected?: boolean;\n quantity_adjustment_allowed?: boolean;\n}\n\nexport interface ItemsBlock extends ContentBlockBase {\n type: ContentBlockType.ITEMS;\n title?: string;\n view?: ItemsView;\n contact_selection_enabled?: boolean;\n selection_type?: ItemsSelectionType;\n selection_requirement_type?: ItemsSelectionRequirementType;\n items: ItemBlock[];\n}\n\nexport interface SummaryBlock extends ContentBlockBase {\n type: ContentBlockType.SUMMARY;\n title?: string;\n}\n\nexport interface InputBlockBase extends ContentBlockBase {\n name?: string;\n description?: string;\n placeholder?: string;\n required?: boolean;\n}\n\nexport interface AddressInputBlock extends InputBlockBase {\n type: ContentBlockType.ADDRESS_INPUT;\n country_options: { label: string; value: string }[];\n}\n\nexport interface CountriesInputBlock extends InputBlockBase {\n type: ContentBlockType.COUNTRIES_INPUT;\n country_options?: { label: string; value: string }[];\n}\n\nexport interface DateInputBlock extends InputBlockBase {\n type: ContentBlockType.DATE_INPUT;\n}\n\nexport interface DropdownInputBlock extends InputBlockBase {\n type: ContentBlockType.DROPDOWN_INPUT;\n options?: string[];\n allow_multiple_selection?: boolean;\n}\n\nexport interface EmailInputBlock extends InputBlockBase {\n type: ContentBlockType.EMAIL_INPUT;\n}\n\nexport interface FileUploadInputBlock extends InputBlockBase {\n type: ContentBlockType.FILE_UPLOAD_INPUT;\n}\n\nexport interface FileUploadInputBlock extends InputBlockBase {\n type: ContentBlockType.FILE_UPLOAD_INPUT;\n}\n\nexport interface LinkInputBlock extends InputBlockBase {\n type: ContentBlockType.LINK_INPUT;\n}\n\nexport interface LongTextInputBlock extends InputBlockBase {\n type: ContentBlockType.LONG_TEXT_INPUT;\n}\n\nexport interface NumberInputBlock extends InputBlockBase {\n type: ContentBlockType.NUMBER_INPUT;\n minimum_limit?: number;\n maximum_limit?: number;\n}\n\nexport interface PhonenumberInputBlock extends InputBlockBase {\n type: ContentBlockType.PHONE_NUMBER_INPUT;\n}\n\nexport interface TextInputBlock extends InputBlockBase {\n type: ContentBlockType.TEXT_INPUT;\n}\n\nexport interface SliderInputBlock extends InputBlockBase {\n type: ContentBlockType.SLIDER_INPUT;\n minimum_limit?: number;\n maximum_limit?: number;\n}\n\nexport enum QuestionAndAnswerType {\n OPEN = \"open\",\n LIST = \"list\",\n}\n\nexport interface QuestionAndAnswerBlock extends ContentBlockBase {\n type?: ContentBlockType.QUESTION_AND_ANSWER;\n title?: string;\n required?: boolean;\n answer_type?: QuestionAndAnswerType;\n options?: string[];\n allow_multiple_selection?: boolean;\n answer?: string | string[];\n}\n\nexport interface SubmitBlock extends ContentBlockBase {\n type: ContentBlockType.SUBMIT;\n text?: string;\n}\n\nexport type ContentBlock =\n | TextBlock\n | ImageBlock\n | PDFBlock\n | SignBlock\n | IntroBlock\n | ItemsBlock\n | SummaryBlock\n | AddressInputBlock\n | CountriesInputBlock\n | DateInputBlock\n | DropdownInputBlock\n | EmailInputBlock\n | FileUploadInputBlock\n | LinkInputBlock\n | LongTextInputBlock\n | NumberInputBlock\n | PhonenumberInputBlock\n | TextInputBlock\n | SliderInputBlock\n | QuestionAndAnswerBlock\n | SubmitBlock;\n\nexport interface ContentBlockTemplate {\n id?: string;\n name?: string;\n resource_type?: ContentBlockResource;\n content_block?: ContentBlock;\n}\n\nexport interface SearchableContentBlock {\n name: string;\n contentBlock: ContentBlockBase;\n contentBlockTemplate?: ContentBlockTemplate;\n}\n\nexport enum ContractChannelEventType {\n CONTRACT_CREATE = \"CONTRACT_CREATE\",\n CONTRACT_UPDATE = \"CONTRACT_UPDATE\",\n CONTRACT_DELETE = \"CONTRACT_DELETE\",\n\n CONTENT_BLOCK_CREATE = \"CONTENT_BLOCK_CREATE\",\n CONTENT_BLOCK_UPDATE = \"CONTENT_BLOCK_UPDATE\",\n CONTENT_BLOCK_DELETE = \"CONTENT_BLOCK_DELETE\",\n}\n\nexport type ContractChannelEvent =\n | ContractChannelCreateContractEvent\n | ContractChannelUpdateContractEvent\n | ContractChannelDeleteContractEvent\n | ContractChannelCreateContentBlockEvent\n | ContractChannelUpdateContentBlockEvent\n | ContractChannelDeleteContentBlockEvent;\n\nexport interface ContractChannelEventBase {\n type: ContractChannelEventType;\n data: object;\n}\n\nexport interface ContractChannelCreateContractEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTRACT_CREATE;\n data: { contract: Contract };\n}\n\nexport interface ContractChannelUpdateContractEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTRACT_UPDATE;\n data: { contract: Contract };\n}\n\nexport interface ContractChannelDeleteContractEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTRACT_DELETE;\n data: { contract_id: string };\n}\n\nexport interface ContractChannelCreateContentBlockEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTENT_BLOCK_CREATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface ContractChannelUpdateContentBlockEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTENT_BLOCK_UPDATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface ContractChannelDeleteContentBlockEvent\n extends ContractChannelEventBase {\n type: ContractChannelEventType.CONTENT_BLOCK_DELETE;\n data: { content_block_id: string };\n}\n\nexport interface SignatureResultBase {\n full_name: string;\n}\n\nexport enum SignatureType {\n TYPED = \"typed\",\n DRAW = \"draw\",\n UPLOAD = \"upload\",\n}\n\nexport interface TypeSignatureResult extends SignatureResultBase {\n type: SignatureType.TYPED;\n}\nexport interface DrawSignatureResult extends SignatureResultBase {\n type: SignatureType.DRAW;\n base64: string;\n}\n\nexport interface UploadSignatureResult extends SignatureResultBase {\n type: SignatureType.UPLOAD;\n signature: File;\n}\n\nexport type SignatureResult =\n | TypeSignatureResult\n | DrawSignatureResult\n | UploadSignatureResult;\n\nexport interface Signature {\n id?: string;\n key?: string;\n type?: SignatureType;\n full_name?: string;\n ip_address?: string;\n signature_url?: string;\n signee?: Contact;\n signee_id?: string;\n signed_at?: string;\n created_at?: string;\n updated_at?: string;\n}\n\nexport interface ContentBlockVariables {\n [key: string]: any;\n}\n\nexport interface SendContractEmailParams {\n to: string[];\n subject: string;\n body: string;\n test_email?: boolean;\n}\n\nexport interface VariableOption {\n name: string;\n label: string;\n value: string;\n options?: VariableOption[];\n}\n\nexport enum ProposalStatus {\n // i18n.t('ProposalStatus::draft')\n DRAFT = \"draft\",\n // i18n.t('ProposalStatus::pending')\n PENDING = \"pending\",\n // i18n.t('ProposalStatus::accepted')\n ACCEPTED = \"accepted\",\n // i18n.t('ProposalStatus::cancelled')\n CANCELLED = \"cancelled\",\n // i18n.t('ProposalStatus::declined')\n DECLINED = \"declined\",\n}\n\nexport interface Proposal {\n id?: string;\n name?: string;\n status?: ProposalStatus;\n expires_on?: string | Date;\n currency?: string;\n workspace_id?: string;\n contact_id?: string;\n contact?: Contact;\n project_id?: string;\n project?: Project;\n deal_id?: string;\n deal?: Deal;\n signees?: Contact[];\n signee_ids?: string[];\n created_at?: string;\n content_blocks?: ContentBlock[];\n signatures?: Signature[];\n}\n\nexport interface SendProposalEmailParams {\n to: string[];\n subject: string;\n body: string;\n test_email?: boolean;\n}\n\nexport enum ProposalChannelEventType {\n PROPOSAL_CREATE = \"PROPOSAL_CREATE\",\n PROPOSAL_UPDATE = \"PROPOSAL_UPDATE\",\n PROPOSAL_DELETE = \"PROPOSAL_DELETE\",\n\n CONTENT_BLOCK_CREATE = \"CONTENT_BLOCK_CREATE\",\n CONTENT_BLOCK_UPDATE = \"CONTENT_BLOCK_UPDATE\",\n CONTENT_BLOCK_DELETE = \"CONTENT_BLOCK_DELETE\",\n}\n\nexport type ProposalChannelEvent =\n | ProposalChannelCreateProposalEvent\n | ProposalChannelUpdateProposalEvent\n | ProposalChannelDeleteProposalEvent\n | ProposalChannelCreateContentBlockEvent\n | ProposalChannelUpdateContentBlockEvent\n | ProposalChannelDeleteContentBlockEvent;\n\nexport interface ProposalChannelEventBase {\n type: ProposalChannelEventType;\n data: object;\n}\n\nexport interface ProposalChannelCreateProposalEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.PROPOSAL_CREATE;\n data: { proposal: Proposal };\n}\n\nexport interface ProposalChannelUpdateProposalEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.PROPOSAL_UPDATE;\n data: { proposal: Proposal };\n}\n\nexport interface ProposalChannelDeleteProposalEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.PROPOSAL_DELETE;\n data: { proposal_id: string };\n}\n\nexport interface ProposalChannelCreateContentBlockEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.CONTENT_BLOCK_CREATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface ProposalChannelUpdateContentBlockEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.CONTENT_BLOCK_UPDATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface ProposalChannelDeleteContentBlockEvent\n extends ProposalChannelEventBase {\n type: ProposalChannelEventType.CONTENT_BLOCK_DELETE;\n data: { content_block_id: string };\n}\n\nexport interface CurrencyOption {\n label: string;\n value: string;\n symbol: string;\n}\n\nexport enum PaymentMethodType {\n CREDIT_CARD = \"card\",\n SEPA = \"sepa_debit\",\n}\n\nexport interface Form {\n id?: string;\n name?: string;\n currency?: string;\n activation_date?: string | Date | any;\n expiration_date?: string | Date | any;\n target_email?: string;\n url?: string;\n embed_url?: string;\n redirect_url?: string;\n recaptcha_enabled?: boolean;\n recaptcha_secret?: string;\n response_limit?: number;\n workspace_id?: string;\n responses_count?: number;\n content_blocks?: ContentBlock[];\n task_create_enabled?: boolean;\n board_id?: string;\n board_list_id?: string;\n task_assignee_ids?: string[];\n created_at?: string;\n submittable?: boolean;\n enabled?: boolean;\n}\n\nexport enum FormChannelEventType {\n FORM_CREATE = \"FORM_CREATE\",\n FORM_UPDATE = \"FORM_UPDATE\",\n FORM_DELETE = \"FORM_DELETE\",\n\n CONTENT_BLOCK_CREATE = \"CONTENT_BLOCK_CREATE\",\n CONTENT_BLOCK_UPDATE = \"CONTENT_BLOCK_UPDATE\",\n CONTENT_BLOCK_DELETE = \"CONTENT_BLOCK_DELETE\",\n\n FORM_RESPONSE_CREATE = \"FORM_RESPONSE_CREATE\",\n FORM_RESPONSE_UPDATE = \"FORM_RESPONSE_UPDATE\",\n FORM_RESPONSE_DELETE = \"FORM_RESPONSE_DELETE\",\n}\n\nexport type FormChannelEvent =\n | FormChannelCreateFormEvent\n | FormChannelUpdateFormEvent\n | FormChannelDeleteFormEvent\n | FormChannelCreateContentBlockEvent\n | FormChannelUpdateContentBlockEvent\n | FormChannelDeleteContentBlockEvent\n | FormChannelCreateFormResponseEvent\n | FormChannelUpdateFormResponseEvent\n | FormChannelDeleteFormResponseEvent;\n\nexport interface FormChannelEventBase {\n type: FormChannelEventType;\n data: object;\n}\n\nexport interface FormChannelCreateFormEvent extends FormChannelEventBase {\n type: FormChannelEventType.FORM_CREATE;\n data: { form: Form };\n}\n\nexport interface FormChannelUpdateFormEvent extends FormChannelEventBase {\n type: FormChannelEventType.FORM_UPDATE;\n data: { form: Form };\n}\n\nexport interface FormChannelDeleteFormEvent extends FormChannelEventBase {\n type: FormChannelEventType.FORM_DELETE;\n data: { form_id: string };\n}\n\nexport interface FormChannelCreateContentBlockEvent\n extends FormChannelEventBase {\n type: FormChannelEventType.CONTENT_BLOCK_CREATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface FormChannelUpdateContentBlockEvent\n extends FormChannelEventBase {\n type: FormChannelEventType.CONTENT_BLOCK_UPDATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface FormChannelDeleteContentBlockEvent\n extends FormChannelEventBase {\n type: FormChannelEventType.CONTENT_BLOCK_DELETE;\n data: { content_block_id: string };\n}\n\nexport interface FormChannelCreateFormResponseEvent {\n type: FormChannelEventType.FORM_RESPONSE_CREATE;\n data: { form_response: FormResponse };\n}\nexport interface FormChannelUpdateFormResponseEvent {\n type: FormChannelEventType.FORM_RESPONSE_UPDATE;\n data: { form_response: FormResponse };\n}\nexport interface FormChannelDeleteFormResponseEvent {\n type: FormChannelEventType.FORM_RESPONSE_DELETE;\n data: { form_response_id: string };\n}\n\nexport interface FormResponse {\n id?: string;\n data?: { [key: string]: any };\n form_id?: string;\n form?: Form;\n viewed_at?: string | Date;\n created_at: string;\n}\n\nexport interface BlobResponse {\n filename: string;\n blob: Blob;\n}\n\nexport enum SpreadsheetExportType {\n // i18n.t('SpreadsheetExportType::xlsx')\n EXCEL = \"xlsx\",\n // i18n.t('SpreadsheetExportType::csv')\n CSV = \"csv\",\n // i18n.t('SpreadsheetExportType::ods')\n ODS = \"ods\",\n}\n\nexport enum TimeTrackingViewReportMode {\n // t('TimeTrackingViewReportMode::week')\n WEEK = \"week\",\n // t('TimeTrackingViewReportMode::month')\n MONTH = \"month\",\n // t('TimeTrackingViewReportMode::quarter')\n QUARTER = \"quarter\",\n // t('TimeTrackingViewReportMode::year')\n YEAR = \"year\",\n}\n\nexport enum TimeTrackingViewReportType {\n // t('TimeTrackingViewReportType::contact')\n CLIENT = \"contact\",\n // t('TimeTrackingViewReportType::project')\n PROJECT = \"project\",\n // t('TimeTrackingViewReportType::work_type')\n WORK_TYPE = \"work_type\",\n // t('TimeTrackingViewReportType::project_team')\n PROJECT_TEAM = \"project_team\",\n // t('TimeTrackingViewReportType::team')\n TEAM = \"team\",\n}\n\nexport interface TimeTrackingReportDataRowBase {\n name: string;\n billable_hours: number;\n unbillable_hours: number;\n hours: number;\n cost_amount: number;\n billable_amount: number;\n net_amount: number;\n}\n\nexport interface ContactTimeTrackingReportDataRow\n extends TimeTrackingReportDataRowBase {\n contact_id?: string;\n}\nexport interface ProjectTimeTrackingReportDataRow\n extends TimeTrackingReportDataRowBase {\n project_id?: string;\n contact_id?: string;\n contact_name?: string;\n budget?: string | number;\n}\n\nexport interface WorkTypeTimeTrackingReportDataRow\n extends TimeTrackingReportDataRowBase {\n work_type_id?: string;\n}\n\nexport interface ProjectTeamTimeTrackingReportDataRow\n extends TimeTrackingReportDataRowBase {\n project_id?: string;\n contact_id?: string;\n contact_name?: string;\n user_id?: string;\n user: string;\n}\n\nexport interface TeamTimeTrackingReportDataRow\n extends TimeTrackingReportDataRowBase {}\n\nexport type TimeTrackingReportDataRow =\n | ContactTimeTrackingReportDataRow\n | ProjectTimeTrackingReportDataRow\n | WorkTypeTimeTrackingReportDataRow\n | ProjectTeamTimeTrackingReportDataRow[]\n | TeamTimeTrackingReportDataRow;\n\nexport interface TimeTrackingReportDataBase {\n billable_hours: number;\n unbillable_hours: number;\n hours: number;\n billable_cost_amount: number;\n billable_amount: number;\n unbillable_cost_amount: number;\n unbillable_amount: number;\n uninvoiced_amount: number;\n net_amount: number;\n}\n\nexport interface ContactTimeTrackingReportData\n extends TimeTrackingReportDataBase {\n type: TimeTrackingViewReportType.CLIENT;\n entries: ContactTimeTrackingReportDataRow[];\n}\nexport interface ProjectTimeTrackingReportData\n extends TimeTrackingReportDataBase {\n type: TimeTrackingViewReportType.PROJECT;\n entries: ProjectTimeTrackingReportDataRow[];\n budget?: string | number;\n}\n\nexport interface WorkTypeTimeTrackingReportData\n extends TimeTrackingReportDataBase {\n type: TimeTrackingViewReportType.WORK_TYPE;\n entries: WorkTypeTimeTrackingReportDataRow[];\n}\n\nexport interface ProjectTeamTimeTrackingReportData\n extends TimeTrackingReportDataBase {\n type: TimeTrackingViewReportType.PROJECT_TEAM;\n entries: Array;\n}\n\nexport interface TeamTimeTrackingReportData extends TimeTrackingReportDataBase {\n type: TimeTrackingViewReportType.TEAM;\n entries: TeamTimeTrackingReportDataRow[];\n}\n\nexport type TimeTrackingReportData =\n | ContactTimeTrackingReportData\n | ProjectTimeTrackingReportData\n | WorkTypeTimeTrackingReportData\n | ProjectTeamTimeTrackingReportData\n | TeamTimeTrackingReportData;\n\nexport enum NavigationMenuListType {\n MAIN = \"main\",\n CHILD = \"child\",\n}\n\nexport enum NavigationMenuItemPage {\n // i18n.t('NavigationMenuItemPage::dashboard')\n DASHBOARD = \"dashboard\",\n // i18n.t('NavigationMenuItemPage::calendar')\n CALENDAR = \"calendar\",\n // i18n.t('NavigationMenuItemPage::tasks')\n TASKS = \"tasks\",\n // i18n.t('NavigationMenuItemPage::contacts')\n CONTACTS = \"contacts\",\n // i18n.t('NavigationMenuItemPage::sequences')\n SEQUENCES = \"sequences\",\n // i18n.t('NavigationMenuItemPage::deals')\n DEALS = \"deals\",\n // i18n.t('NavigationMenuItemPage::projects')\n PROJECTS = \"projects\",\n // i18n.t('NavigationMenuItemPage::track')\n TIME_TRACKING = \"track\",\n // i18n.t('NavigationMenuItemPage::proposals')\n PROPOSALS = \"proposals\",\n // i18n.t('NavigationMenuItemPage::invoices')\n INVOICES = \"invoices\",\n // i18n.t('NavigationMenuItemPage::contracts')\n CONTRACTS = \"contracts\",\n // i18n.t('NavigationMenuItemPage::expenses')\n EXPENSES = \"expenses\",\n // i18n.t('NavigationMenuItemPage::bank')\n BANK = \"bank\",\n // i18n.t('NavigationMenuItemPage::payments')\n PAYMENTS = \"payments\",\n // i18n.t('NavigationMenuItemPage::accountant')\n ACCOUNTANT = \"accountant\",\n // i18n.t('NavigationMenuItemPage::products')\n PRODUCTS = \"products\",\n // i18n.t('NavigationMenuItemPage::forms')\n FORMS = \"forms\",\n // i18n.t('NavigationMenuItemPage::files')\n FILES = \"files\",\n // i18n.t('NavigationMenuItemPage::reporting')\n REPORTING = \"reporting\",\n}\n\nexport enum NavigationMenuItemType {\n GROUP = \"group\",\n PAGE = \"page\",\n LINK = \"link\",\n DIVIDER = \"divider\",\n}\n\nexport interface NavigationMenuItemBase {\n position?: number;\n}\n\nexport interface GroupNavigationMenuItem extends NavigationMenuItemBase {\n type?: NavigationMenuItemType.GROUP;\n label?: string;\n items?: NavigationMenuItem[];\n}\nexport interface PageNavigationMenuItem extends NavigationMenuItemBase {\n type?: NavigationMenuItemType.PAGE;\n page?: NavigationMenuItemPage;\n home?: boolean;\n}\n\nexport interface LinkNavigationMenuItem extends NavigationMenuItemBase {\n type?: NavigationMenuItemType.LINK;\n label?: string;\n value?: string;\n}\n\nexport interface DividerNavigationMenuItem extends NavigationMenuItemBase {\n type?: NavigationMenuItemType.DIVIDER;\n}\n\nexport type NavigationMenuItem =\n | GroupNavigationMenuItem\n | PageNavigationMenuItem\n | LinkNavigationMenuItem\n | DividerNavigationMenuItem;\n\nexport enum LedgerItemPaymentMethod {\n // t('LedgerItemPaymentMethod::cash')\n CASH = \"cash\",\n // t('LedgerItemPaymentMethod::bank_transfer')\n BANK_TRANSFER = \"bank_transfer\",\n}\n\nexport interface LedgerItemPayment {\n id?: string;\n amount?: number;\n payment_method?: \"cash\" | \"bank_transfer\";\n currency?: string;\n executed_at?: string | Date;\n details?: string;\n uid?: string;\n ledger_item_id?: string;\n}\n\nexport interface UnpaidClaim {\n claim_id: string;\n claim_status: string;\n claim_status_explanation: string;\n claim_unpaid_status: number;\n claim_unpaid_status_explanation: string;\n payment_error: boolean;\n payment_tried: boolean;\n payment_url: string;\n calculations: {\n table: {\n amount_due: string;\n amount_due_no_interest: string;\n bailiff_pay: string;\n capped: string;\n excl: string;\n full_tpoay: string;\n receive_extra: number;\n tax: string;\n topay: string;\n };\n };\n}\n\nexport interface Payment {\n id?: string;\n remittance_information?: string;\n remittance_information_type?: RemittanceInformationType;\n currency?: string;\n amount?: number | string;\n creditor_name?: string;\n creditor_account?: string;\n creditor_account_type?: string;\n notes?: string;\n payment_initiation?: PaymentInitiation;\n payment_initiation_id?: string;\n suggested_execution_date?: string | Date;\n execution_date?: string | Date;\n created_at?: string | Date;\n}\n\nexport type PaymentProperty = keyof Payment;\n\nexport type PaymentColumnProperty = keyof Pick;\nexport const PaymentColumns: PaymentColumnProperty[] = [];\n\nexport type PaymentFilterProperty = keyof Pick<\n Payment & { status: PaymentInitiationStatus },\n | \"creditor_name\"\n | \"creditor_account\"\n | \"status\"\n | \"remittance_information\"\n | \"execution_date\"\n | \"amount\"\n | \"created_at\"\n>;\n\nexport const PaymentFilters: PaymentFilterProperty[] = [\n \"creditor_name\",\n \"creditor_account\",\n \"status\",\n \"remittance_information\",\n \"execution_date\",\n \"amount\",\n \"created_at\",\n];\nexport type PaymentFilter = ResourceFilter;\n\nexport const enum PaymentInitiationStatus {\n // t('PaymentInitiationStatus::draft')\n DRAFT = \"draft\",\n // t('PaymentInitiationStatus::unsigned')\n UNSIGNED = \"unsigned\",\n // t('PaymentInitiationStatus::signed')\n SIGNED = \"signed\",\n}\n\nexport interface PaymentInitiation {\n id?: string;\n reference?: string;\n status?: PaymentInitiationStatus;\n notes?: string;\n uuid?: string;\n sign_redirect_url?: string;\n execution_date?: string;\n created_at?: string | Date;\n account_id?: string;\n account?: Account;\n payments?: Payment[];\n}\n\nexport interface PaymentInitiationIntegrationMetadata {\n integration_enabled: boolean;\n payments_activation_requested: boolean;\n payments_activated: boolean;\n}\n\nexport interface PaymentInitiationForm {\n payment_initiation: PaymentInitiation;\n payment_initiation_metadata: PaymentInitiationIntegrationMetadata;\n}\n\nexport interface BizzeyInvoice {\n id?: string;\n invoice_id?: string;\n customer_id?: string;\n workspace_Id?: string;\n created_at?: string;\n}\n\nexport interface Deal {\n id?: string;\n name?: string;\n notes?: string;\n amount?: number;\n currency?: string;\n status?: DealStatus;\n lost_reason?: string;\n contact?: Contact;\n contact_id?: string;\n project?: Project;\n project_id?: string;\n due_on?: string | Date;\n success_rate?: number;\n deal_stage?: DealStage;\n deal_stage_id?: string;\n assignee?: User;\n assignee_id?: string;\n position?: number;\n updated_at?: string | Date;\n created_at?: string | Date;\n}\n\nexport enum DealStageAction {\n // i18n.t('DealStageAction::event')\n EVENT = \"event\",\n // i18n.t('DealStageAction::email')\n EMAIL = \"email\",\n // i18n.t('DealStageAction::call')\n CALL = \"call\",\n // i18n.t('DealStageAction::appointment')\n APPOINTMENT = \"appointment\",\n // i18n.t('DealStageAction::task')\n TASK = \"task\",\n}\n\nexport enum DealStatus {\n // i18n.t('DealStatus::open')\n OPEN = \"open\",\n // i18n.t('DealStatus::won')\n WON = \"won\",\n // i18n.t('DealStatus::lost')\n LOST = \"lost\",\n}\n\nexport interface DealStage {\n id?: string;\n name?: string;\n status?: DealStatus;\n success_rate?: number;\n inactivity_alert?: number;\n action?: DealStageAction;\n position?: number;\n created_at?: string | Date;\n}\n\nexport enum DealViewActionType {\n CALENDAR_EVENT = \"calendar_event\",\n TASK = \"task\",\n}\n\nexport interface DealViewActionBase {\n type: DealViewActionType;\n}\n\nexport interface DealViewCalendarEventAction extends DealViewActionBase {\n type: DealViewActionType.CALENDAR_EVENT;\n resource: CalendarEvent;\n}\nexport interface DealViewTaskAction extends DealViewActionBase {\n type: DealViewActionType.TASK;\n resource: Task;\n}\n\nexport enum LedgerItemExportType {\n // i18n.t('LedgerItemExportType::xlsx')\n EXCEL = \"xlsx\",\n // i18n.t('LedgerItemExportType::csv')\n CSV = \"csv\",\n // i18n.t('LedgerItemExportType::pdf')\n PDF = \"pdf\",\n // i18n.t('LedgerItemExportType::ubl')\n UBL = \"ubl\",\n}\n\nexport interface ExportLedgerItemParams {\n type: LedgerItemExportType;\n start: string;\n end: string;\n}\n\nexport enum ExpenseExportType {\n // i18n.t('ExpenseExportType::xlsx')\n EXCEL = \"xlsx\",\n // i18n.t('ExpenseExportType::csv')\n CSV = \"csv\",\n // i18n.t('ExpenseExportType::receipt')\n RECEIPT = \"receipt\",\n}\n\nexport interface ExportExpenseParams {\n type: ExpenseExportType;\n start: string;\n end: string;\n}\n\nexport enum ExportTimePeriod {\n // i18n.t('ExportTimePeriod::all')\n ALL = \"all\",\n // i18n.t('ExportTimePeriod::current_month')\n CURRENT_MONTH = \"current_month\",\n // i18n.t('ExportTimePeriod::previous_month')\n PREVIOUS_MONTH = \"previous_month\",\n // i18n.t('ExportTimePeriod::current_quarter')\n CURRENT_QUARTER = \"current_quarter\",\n // i18n.t('ExportTimePeriod::previous_quarter')\n PREVIOUS_QUARTER = \"previous_quarter\",\n // i18n.t('ExportTimePeriod::current_year')\n CURRENT_YEAR = \"current_year\",\n // i18n.t('ExportTimePeriod::previous_year')\n PREVIOUS_YEAR = \"previous_year\",\n // i18n.t('ExportTimePeriod::custom')\n CUSTOM = \"custom\",\n}\n\nexport interface Pagination {\n page: number;\n pageCount: number;\n}\n\nexport interface WorkType {\n id?: string;\n name?: string;\n color?: string;\n billable?: boolean;\n hourly_rate?: number;\n day_rate?: number;\n multiplier?: number;\n position?: number;\n workspace_id?: string;\n}\n\nexport enum RateType {\n // i18n.t('RateType::user')\n USER = \"user\",\n // i18n.t('RateType::work_type')\n WORK_TYPE = \"work_type\",\n // i18n.t('RateType::fixed')\n FIXED = \"fixed\",\n}\n\nexport enum CalendarIntegrationType {\n GOOGLE = \"google\",\n MICROSOFT = \"outlook\",\n}\n\nexport interface CalendarIntegration {\n id?: string;\n type?: CalendarIntegrationType;\n access_token?: string;\n refresh_token?: string;\n config?: object;\n}\n\nexport interface GoogleCalendar extends CalendarIntegration {\n type: CalendarIntegrationType.GOOGLE;\n}\n\nexport interface PeppolSearchParams {\n // Generic query term. It queries all fields and the results equal the ones that can be obtained when using the simple search. The query term is split into pieces internally and subwords may be found.\n q?: string;\n // Searches for exact matches in the Peppol participant identifier field (the identifier scheme must be part of the value).\n participant?: string;\n // Searches for partial matches in business entity names.\n name?: string;\n // Searches for exact matches in business entity country codes.\n country?: string;\n // Defines the 0-based index for the result page to be returned. If not provided, the first page is returned. By default only 20 entries are returned and this entry can be used to browse the results. Use this in combination with resultPageCount to define the number of results.\n resultPageIndex?: string | number;\n // Defines the number of items to be returned per page. If not provided 20 entries are returned. Use this in combination with resultPageIndex to define the number of results.\n resultPageCount?: string | number;\n}\n\nexport interface PeppolParticipant {\n participantID: {\n scheme: string;\n value: string;\n };\n docTypes: Array<{\n scheme: string;\n value: string;\n }>;\n entities: Array<{\n name: Array<{\n name: string;\n }>;\n countryCode: string;\n websites?: string[];\n additionalInfo?: string;\n identifiers?: Array<{\n scheme: string;\n value: string;\n }>;\n regDate?: string | Date;\n }>;\n}\n\nexport interface PeppolSearchResult {\n version: string;\n \"total-result-count\": number;\n \"used-result-count\": number;\n \"result-page-index\": number;\n \"result-page-count\": number;\n \"first-result-index\": number;\n \"last-result-index\": number;\n \"query-terms\": string;\n \"creation-dt\": string;\n matches: PeppolParticipant[];\n}\n\nexport enum ContactViewActionType {\n CALENDAR_EVENT = \"calendar_event\",\n TASK = \"task\",\n}\n\nexport interface ContactViewActionBase {\n type: ContactViewActionType;\n}\n\nexport interface ContactViewCalendarEventAction extends ContactViewActionBase {\n type: ContactViewActionType.CALENDAR_EVENT;\n resource: CalendarEvent;\n}\nexport interface ContactViewTaskAction extends ContactViewActionBase {\n type: ContactViewActionType.TASK;\n resource: Task;\n}\n\nexport interface FinancialYear {\n id?: string;\n name?: string;\n start_date?: string;\n end_date?: string;\n}\n\nexport interface Account {\n id?: string;\n name?: string;\n reference?: string;\n currency?: string;\n financial_institution?: string;\n balance?: number;\n reauthorize_at?: string | Date;\n created_at?: string | Date;\n}\n\nexport type AccountColumnProperty = keyof Pick;\nexport const AccountColumns: AccountColumnProperty[] = [];\n\nexport type AccountFilterProperty = keyof Pick<\n Account,\n | \"name\"\n | \"financial_institution\"\n | \"reference\"\n | \"balance\"\n | \"currency\"\n | \"created_at\"\n>;\n\nexport const AccountFilters: AccountFilterProperty[] = [\n \"name\",\n \"financial_institution\",\n \"reference\",\n \"balance\",\n \"currency\",\n \"created_at\",\n];\nexport type AccountFilter = ResourceFilter;\n\nexport interface Transaction {\n id?: string;\n counterpart_name?: string;\n counterpart_account_number?: string;\n description?: string;\n additional_information?: string;\n amount?: string;\n linked_amount?: string;\n currency?: string;\n remittance_information?: string;\n remittance_information_type?: string;\n provider?: string;\n uid?: string;\n execution_time?: string;\n notes?: string;\n verified?: boolean;\n manually_verified?: boolean;\n payment_ids?: string[];\n ledger_item_ids?: string[];\n expense_ids?: string[];\n account_id?: string;\n account?: Account;\n created_at?: string | Date;\n}\n\nexport type TransactionProperty = keyof Transaction;\n\nexport type TransactionColumnProperty = keyof Pick;\nexport const TransactionColumns: TransactionColumnProperty[] = [];\n\nexport type TransactionFilterProperty = keyof Pick<\n Transaction,\n | \"account_id\"\n | \"counterpart_name\"\n | \"counterpart_account_number\"\n | \"remittance_information\"\n | \"execution_time\"\n | \"amount\"\n | \"currency\"\n | \"created_at\"\n>;\n\nexport const TransactionFilters: TransactionFilterProperty[] = [\n \"account_id\",\n \"counterpart_name\",\n \"counterpart_account_number\",\n \"remittance_information\",\n \"execution_time\",\n \"amount\",\n \"currency\",\n \"created_at\",\n];\nexport type TransactionFilter = ResourceFilter;\n\nexport interface Playbook {\n id?: string;\n name?: string;\n workspace_id?: string;\n content_blocks?: ContentBlock[];\n created_at?: string;\n}\n\nexport enum PlaybookableType {\n CONTACT = \"Contact\",\n TASK = \"Task\",\n}\n\nexport interface PlaybookSubmission {\n id?: string;\n playbook_id?: string;\n playbookable_id?: string;\n playbookable_type?: PlaybookableType;\n answers?: PlaybookSubmissionAnswer[];\n}\n\nexport interface PlaybookSubmissionAnswer {\n id?: string;\n notes?: string;\n selected_answers?: string[];\n question_id?: string;\n playbook_submission_id?: string;\n}\n\nexport enum PlaybookChannelEventType {\n PLAYBOOK_CREATE = \"PLAYBOOK_CREATE\",\n PLAYBOOK_UPDATE = \"PLAYBOOK_UPDATE\",\n PLAYBOOK_DELETE = \"PLAYBOOK_DELETE\",\n\n CONTENT_BLOCK_CREATE = \"CONTENT_BLOCK_CREATE\",\n CONTENT_BLOCK_UPDATE = \"CONTENT_BLOCK_UPDATE\",\n CONTENT_BLOCK_DELETE = \"CONTENT_BLOCK_DELETE\",\n}\n\nexport type PlaybookChannelEvent =\n | PlaybookChannelCreatePlaybookEvent\n | PlaybookChannelUpdatePlaybookEvent\n | PlaybookChannelDeletePlaybookEvent\n | PlaybookChannelCreateContentBlockEvent\n | PlaybookChannelUpdateContentBlockEvent\n | PlaybookChannelDeleteContentBlockEvent;\n\nexport interface PlaybookChannelEventBase {\n type: PlaybookChannelEventType;\n data: object;\n}\n\nexport interface PlaybookChannelCreatePlaybookEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.PLAYBOOK_CREATE;\n data: { playbook: Playbook };\n}\n\nexport interface PlaybookChannelUpdatePlaybookEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.PLAYBOOK_UPDATE;\n data: { playbook: Playbook };\n}\n\nexport interface PlaybookChannelDeletePlaybookEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.PLAYBOOK_DELETE;\n data: { playbook_id: string };\n}\n\nexport interface PlaybookChannelCreateContentBlockEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.CONTENT_BLOCK_CREATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface PlaybookChannelUpdateContentBlockEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.CONTENT_BLOCK_UPDATE;\n data: { content_block: ContentBlock };\n}\n\nexport interface PlaybookChannelDeleteContentBlockEvent\n extends PlaybookChannelEventBase {\n type: PlaybookChannelEventType.CONTENT_BLOCK_DELETE;\n data: { content_block_id: string };\n}\n\nexport interface UBLExtractionBase {\n type?: \"invoice\" | \"credit_note\";\n issue_date?: string;\n currency?: string;\n supplier?: {\n endpoint_scheme?: string;\n endpoint_id?: string;\n party_id?: string;\n name?: string;\n company_id?: string;\n legal_name?: string;\n address?: {\n street?: string;\n city?: string;\n postal?: string;\n country_code?: string;\n };\n };\n customer?: {\n endpoint_scheme?: string;\n endpoint_id?: string;\n party_id?: string;\n name?: string;\n company_id?: string;\n legal_name?: string;\n address?: {\n street?: string;\n city?: string;\n postal?: string;\n country_code?: string;\n };\n };\n payment_details?: {\n id?: string;\n account_id?: string;\n account_name?: string;\n account_swift?: string;\n terms?: string;\n };\n total_exclusive?: string | number;\n total_inclusive?: string | number;\n line_items?: string | number;\n attachments?: string[];\n}\n\nexport interface UBLInvoiceExtractionData extends UBLExtractionBase {\n type: \"invoice\";\n due_date?: string;\n}\n\nexport interface UBLCreditnoteExtractionData extends UBLExtractionBase {\n type: \"credit_note\";\n}\n\nexport type UBLData = UBLInvoiceExtractionData | UBLCreditnoteExtractionData;\n\nexport enum SettingsEmailTemplate {\n // i18n.t(`EmailTemplate::order_form`)\n ORDER_FORM = \"order_form\",\n // i18n.t(`EmailTemplate::delivery_note`)\n DELIVERY_NOTE = \"delivery_note\",\n // i18n.t(`EmailTemplate::quote`)\n QUOTE = \"quote\",\n // i18n.t(`EmailTemplate::pro_forma_invoice`)\n PRO_FORMA_INVOICE = \"pro_forma_invoice\",\n // i18n.t(`EmailTemplate::invoice`)\n INVOICE = \"invoice\",\n // i18n.t(`EmailTemplate::invoice_reminder`)\n INVOICE_REMINDER = \"invoice_reminder\",\n // i18n.t(`EmailTemplate::invoice_paid`)\n INVOICE_PAID = \"invoice_paid\",\n // i18n.t(`EmailTemplate::credit_note`)\n CREDIT_NOTE = \"credit_note\",\n // i18n.t(`EmailTemplate::proposal`)\n PROPOSAL = \"proposal\",\n // i18n.t(`EmailTemplate::contract`)\n CONTRACT = \"contract\",\n}\n\nexport interface Transfer {\n id?: string;\n name?: string;\n expires_at?: string;\n workspace_id?: string;\n created_at?: string;\n files: ActiveStorage.Blob[];\n}\n\nexport interface Email {\n id?: string;\n from?: EmailHeader;\n to?: EmailHeader[];\n cc?: EmailHeader[];\n subject?: string;\n body?: string;\n raw_text?: string;\n raw_html?: string;\n raw_body?: string;\n attachments?: any[];\n created_at?: string;\n}\n\nexport interface EmailHeader {\n token?: string;\n host?: string;\n email?: string;\n full?: string;\n name?: string;\n}\n\nexport enum ActivityType {\n CREATION = \"creation\",\n NOTE = \"note\",\n EMAIL = \"email\",\n CALENDAR_EVENT = \"calendar_event\",\n TASK = \"task\",\n OFFER_SIGNED = \"offer_signed\",\n INVOICE_PAID = \"invoice_paid\",\n LEDGER_ITEM_SEEN = \"ledger_item_seen\",\n CALL = \"call\",\n ENROLL_SEQUENCE = \"enroll_sequence\",\n UNENROLL_SEQUENCE = \"unenroll_sequence\",\n}\n\nexport enum ActivityTrackableType {\n CLIENT = \"Contact\",\n PROJECT = \"Project\",\n DEAL = \"Deal\",\n}\n\ninterface ActivityBase {\n id?: string;\n type?: ActivityType;\n trackable_type?: ActivityTrackableType;\n trackable_id?: string;\n trackable?: any;\n model_type?: string;\n model_id?: string;\n model?: any;\n owner_type?: string;\n owner_id?: string;\n owner?: any;\n recipient_type?: string;\n recipient_id?: string;\n recipient?: any;\n data: Object;\n workspace_id?: string;\n created_at?: string;\n}\n\ninterface CreatedActivity extends ActivityBase {\n type: ActivityType.CREATION;\n data: {};\n}\n\ninterface NoteActivity extends ActivityBase {\n type: ActivityType.NOTE;\n data: { note: string };\n}\n\ninterface EmailActivity extends ActivityBase {\n type: ActivityType.EMAIL;\n model: Email;\n model_type: \"Email\";\n}\n\ninterface CalendarEventActivity extends ActivityBase {\n type: ActivityType.CALENDAR_EVENT;\n model: CalendarEvent;\n model_type: \"CalendarEvent\";\n}\n\ninterface TaskActivity extends ActivityBase {\n type: ActivityType.TASK;\n model: Task;\n model_type: \"Task\";\n}\n\ninterface InvoicePaidActivity extends ActivityBase {\n type: ActivityType.INVOICE_PAID;\n model: LedgerItem;\n model_type: \"LedgerItem\";\n}\n\ninterface LedgerItemSeenActivity extends ActivityBase {\n type: ActivityType.LEDGER_ITEM_SEEN;\n model: LedgerItem;\n model_type: \"LedgerItem\";\n}\n\ninterface OfferSignedActivity extends ActivityBase {\n type: ActivityType.OFFER_SIGNED;\n model: LedgerItem;\n model_type: \"LedgerItem\";\n}\n\ninterface CallActivity extends ActivityBase {\n type: ActivityType.CALL;\n model: Call;\n model_type: \"Call\";\n}\n\ninterface SequenceEnrollmentActivity extends ActivityBase {\n type: ActivityType.ENROLL_SEQUENCE;\n model: Sequence;\n model_type: \"Sequence\";\n}\n\ninterface SequenceUnenrollmentActivity extends ActivityBase {\n type: ActivityType.UNENROLL_SEQUENCE;\n model: Sequence;\n model_type: \"Sequence\";\n}\n\nexport type Activity =\n | CreatedActivity\n | NoteActivity\n | EmailActivity\n | CalendarEventActivity\n | TaskActivity\n | InvoicePaidActivity\n | LedgerItemSeenActivity\n | OfferSignedActivity\n | CallActivity\n | SequenceEnrollmentActivity\n | SequenceUnenrollmentActivity;\n\nexport interface QRCData {\n name: string;\n iban: string;\n remittanceInformationType: RemittanceInformationType;\n remittanceInformation: string;\n amount: number;\n currency: string;\n}\n\nexport interface TaskTimeTrackingReportDataBase {}\n\nexport interface TaskSummaryTimeTrackingReportDataRow\n extends TaskTimeTrackingReportDataBase {\n user_id?: string;\n name: string;\n time_spent?: string;\n}\n\nexport interface TaskTimesheetTimeTrackingReportDataRow\n extends TaskTimeTrackingReportDataBase {\n user_id?: string;\n user: string;\n}\n\nexport type TaskTimeTrackingReportDataRow =\n | TaskSummaryTimeTrackingReportDataRow\n | TimeEntry[];\n\nexport enum TaskTimeTrackingViewReportType {\n // t('TaskTimeTrackingViewReportType::summary')\n SUMMARY = \"summary\",\n // t('TaskTimeTrackingViewReportType::timesheet')\n TIMESHEET = \"timesheet\",\n}\n\nexport interface TaskSummaryTimeTrackingReportData\n extends TaskTimeTrackingReportDataBase {\n type: TaskTimeTrackingViewReportType.SUMMARY;\n time_estimated: string;\n time_spent: string;\n entries: TaskSummaryTimeTrackingReportDataRow[];\n}\nexport interface TaskTimesheetTimeTrackingReportData\n extends TaskTimeTrackingReportDataBase {\n type: TaskTimeTrackingViewReportType.TIMESHEET;\n time_estimated: string;\n time_spent: string;\n entries: TimeEntry[];\n}\n\nexport type TaskTimeTrackingReportData =\n | TaskSummaryTimeTrackingReportData\n | TaskTimesheetTimeTrackingReportData;\n\nexport interface VATResponse {\n name?: string;\n vat_number?: string;\n company_type?: string;\n street?: string;\n street_number?: string;\n postal?: string;\n city?: string;\n country?: string;\n full_address?: string;\n errors?: any;\n}\n\nexport interface Document {\n id?: string;\n name?: string;\n description?: string;\n date?: string;\n booked_on?: string;\n created_at?: string;\n attachment?: any;\n attachment_file_name?: string;\n attachment_content_type?: string;\n attachment_file_size?: number;\n attachment_url?: string | null;\n attachment_download_url?: string | null;\n tags?: DocumentTag[];\n tag_ids?: string[];\n}\n\nexport interface DocumentTag {\n id?: string;\n name?: string;\n type?: string;\n}\n\nexport interface ExportDocumentParams {\n start: string;\n end: string;\n}\n\nexport enum FollowUpActionType {\n // i18n.t('FollowUpActionType::call')\n CALL = \"call\",\n // i18n.t('FollowUpActionType::email')\n EMAIL = \"email\",\n // i18n.t('FollowUpActionType::todo')\n TODO = \"todo\",\n}\n\nexport interface PlannerItem {\n user: User;\n dates: PlannerDate[];\n}\n\nexport interface PlannerDate {\n day: Date | string;\n items: PlannerDateItem[];\n start_time: string;\n end_time: string;\n break_enabled: boolean;\n break_start_time: string;\n break_end_time: string;\n availability: number;\n}\n\nexport type PlannerDateItem = CalendarEventPlannerItem | PlannedTaskPlannerItem;\n\ninterface BasePlannerEventItem {\n id: string;\n title?: string;\n type: \"calendar_event\" | \"planned_task\";\n start_at: string | Date;\n end_at: string | Date;\n duration: number;\n}\n\ninterface CalendarEventPlannerItem extends BasePlannerEventItem {\n type: \"calendar_event\";\n}\n\ninterface PlannedTaskPlannerItem extends BasePlannerEventItem {\n type: \"planned_task\";\n task_id: string;\n}\n\nexport type PlannerData = PlannerItem[];\n\nexport interface PlannedTask {\n id?: string;\n start_at?: string | Date;\n end_at?: string | Date;\n duration?: number;\n task_id?: string;\n user?: User;\n user_id?: string;\n task?: Task;\n created_at?: string | Date;\n}\n\nexport interface ActiveStorageBlob extends ActiveStorage.Blob {\n id: string;\n}\n\nexport enum PushNotificationDataType {\n CALL = \"call\",\n}\n\nexport interface PushNotificationDataBase {\n type: PushNotificationDataType;\n}\n\nexport interface CallPushNotificationPayload extends PushNotificationDataBase {\n type: PushNotificationDataType.CALL;\n telephone_number: string;\n}\n\nexport type PushNotificationData = CallPushNotificationPayload;\n\nexport enum CallOutcome {\n // i18n.t('CallOutcome::busy')\n BUSY = \"busy\",\n // i18n.t('CallOutcome::connected')\n CONNECTED = \"connected\",\n // i18n.t('CallOutcome::left_live_message')\n LEFT_LIVE_MESSAGE = \"left_live_message\",\n // i18n.t('CallOutcome::left_voicemail')\n LEFT_VOICEMAIL = \"left_voicemail\",\n // i18n.t('CallOutcome::no_answer')\n NO_ANSWER = \"no_answer\",\n // i18n.t('CallOutcome::wrong_number')\n WRONG_NUMBER = \"wrong_number\",\n}\n\nexport enum CallDirection {\n // i18n.t('CallDirection::inbound')\n INBOUND = \"inbound\",\n // i18n.t('CallDirection::outbound')\n OUTBOUND = \"outbound\",\n}\n\nexport interface Call {\n id?: string;\n outcome?: CallOutcome;\n direction?: CallDirection;\n datetime?: string | Date;\n notes?: string;\n contact_id?: string;\n deal_id?: string;\n created_at?: string | Date;\n}\n\nexport interface EmailTemplate {\n id?: string;\n name?: string;\n subject?: string;\n body?: string;\n attachment_ids?: string[];\n attachments?: ActiveStorageBlob[];\n user_id?: string;\n created_at?: string;\n}\n\nexport interface SequenceMetadata {\n scheduled?: number;\n active?: number;\n paused?: number;\n finished?: number;\n}\n\nexport interface Sequence {\n id?: string;\n name?: string;\n active?: boolean;\n business_days_only?: boolean;\n steps?: SequenceStep[];\n}\n\nexport enum SequenceStepType {\n AUTOMATED_EMAIL = \"automated_email\",\n MANUAL_EMAIL = \"manual_email\",\n CALL = \"call\",\n TASK = \"task\",\n}\n\nexport interface SequenceStepBase {\n id?: string;\n type?: SequenceStepType;\n delay?: number;\n sequence_id?: string;\n position?: number;\n}\n\nexport interface SequenceStepEmail {\n id?: string;\n active?: boolean;\n subject?: string;\n body?: string;\n send_counter?: number;\n open_counter?: number;\n click_counter?: number;\n}\n\nexport interface AutomatedEmailSequenceStep extends SequenceStepBase {\n type: SequenceStepType.AUTOMATED_EMAIL;\n emails?: SequenceStepEmail[];\n}\n\nexport interface ManualEmailSequenceStep extends SequenceStepBase {\n type: SequenceStepType.MANUAL_EMAIL;\n name?: string;\n description?: string;\n created_counter?: number;\n completed_counter?: number;\n}\n\nexport interface CallSequenceStep extends SequenceStepBase {\n type: SequenceStepType.CALL;\n name?: string;\n description?: string;\n created_counter?: number;\n completed_counter?: number;\n playbook_id?: string;\n}\n\nexport interface TaskSequenceStep extends SequenceStepBase {\n type: SequenceStepType.TASK;\n name?: string;\n description?: string;\n created_counter?: number;\n completed_counter?: number;\n}\n\nexport type SequenceStep =\n | AutomatedEmailSequenceStep\n | ManualEmailSequenceStep\n | CallSequenceStep\n | TaskSequenceStep;\n\nexport interface SequenceStepTypeInfo {\n type: SequenceStepType;\n icon: IconTypes;\n title: string;\n description: string;\n color: string;\n backgroundColor: string;\n}\n\nexport enum SequenceChannelEventType {\n SEQUENCE_CREATE = \"SEQUENCE_CREATE\",\n SEQUENCE_UPDATE = \"SEQUENCE_UPDATE\",\n SEQUENCE_DELETE = \"SEQUENCE_DELETE\",\n\n SEQUENCE_STEP_CREATE = \"SEQUENCE_STEP_CREATE\",\n SEQUENCE_STEP_UPDATE = \"SEQUENCE_STEP_UPDATE\",\n SEQUENCE_STEP_DELETE = \"SEQUENCE_STEP_DELETE\",\n}\n\nexport type SequenceChannelEvent =\n | SequenceChannelCreateSequenceEvent\n | SequenceChannelUpdateSequenceEvent\n | SequenceChannelDeleteSequenceEvent\n | SequenceChannelCreateSequenceStepEvent\n | SequenceChannelUpdateSequenceStepEvent\n | SequenceChannelDeleteSequenceStepEvent;\n\nexport interface SequenceChannelEventBase {\n type: SequenceChannelEventType;\n data: object;\n}\n\nexport interface SequenceChannelCreateSequenceEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_CREATE;\n data: { sequence: Sequence };\n}\n\nexport interface SequenceChannelUpdateSequenceEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_UPDATE;\n data: { sequence: Sequence };\n}\n\nexport interface SequenceChannelDeleteSequenceEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_DELETE;\n data: { sequence_id: string };\n}\n\nexport interface SequenceChannelCreateSequenceStepEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_STEP_CREATE;\n data: { sequence_step: SequenceStep };\n}\n\nexport interface SequenceChannelUpdateSequenceStepEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_STEP_UPDATE;\n data: { sequence_step: SequenceStep };\n}\n\nexport interface SequenceChannelDeleteSequenceStepEvent\n extends SequenceChannelEventBase {\n type: SequenceChannelEventType.SEQUENCE_STEP_DELETE;\n data: { sequence_step_id: string };\n}\n\nexport enum SequenceEnrollmentStatus {\n // i18n.t('SequenceEnrollmentStatus::scheduled')\n SCHEDULED = \"scheduled\",\n // i18n.t('SequenceEnrollmentStatus::in_progress')\n IN_PROGRESS = \"in_progress\",\n // i18n.t('SequenceEnrollmentStatus::paused')\n PAUSED = \"paused\",\n // i18n.t('SequenceEnrollmentStatus::finished')\n FINISHED = \"finished\",\n // i18n.t('SequenceEnrollmentStatus::error')\n ERROR = \"error\",\n}\n\nexport interface SequenceEnrollment {\n id?: string;\n contact?: Contact;\n contact_id?: string;\n status?: SequenceEnrollmentStatus;\n created_at?: string | Date;\n sequence_id?: string;\n step_id?: string;\n}\n\nexport interface NumberVariables {\n year: string;\n year_short: string;\n month: string;\n month_short: string;\n month_number: string;\n day: string;\n day_short: string;\n}\n"],"names":["shimmerAnimation","keyframes","baseTransitionSpeed","Breakpoints","grayDarkest","white","black","brandSuccess","brandDanger","brandPrimary","brandWarning","dashboardColor","spaceColor","contactColor","clientColor","supplierColor","projectColor","timeColor","invoiceColor","expenseColor","productColor","reportingColor","defaultColor","baseFontColor","border","budgetColor","budgetRemainingColor","budgetTrail","link","FontWeight","titleXXS","fontSize","titleExtraLarge","titleLarge","titleSemiLarge","title","subtitle","subheading","body","caption","tiny","font","fontWeight","Regular","titleXXSMedium","Medium","titleXXSBold","Bold","titleExtraLargeMedium","titleExtraLargeBold","titleLargeMedium","titleLargeBold","titleSemiLargeMedium","titleSemiLargeBold","titleMedium","titleBold","subtitleMedium","subtitleBold","subheadingMedium","subheadingBold","subheadingBlack","Black","bodyMedium","bodyBold","captionMedium","captionBold","tinyMedium","tinyBold","Style","spacing","color","breakpoints","animations","variables","x0","x0_25","x0_5","x0_75","x1","x1_25","x1_5","x2","x2_5","x3","x3_5","x4","x5","x6","x7","x8","x9","x10","x11","x12","baseBorderRadius","Locale","UserWorkspaceSettingStatus","UserWorkspaceSettingRole","UserWorkspaceSettingScope","PeppolWorkspaceStatus","NumberFormat","BillableRounding","SubscriptionStatus","PlanType","ExpenseType","ExpenseStatus","ExpenseColumns","ExpenseFilters","RemittanceInformationType","LedgerItemStatus","LedgerItemColumns","LedgerItemFilters","RecurrenceUnit","DayOfWeek","MonthOfYear","TimeEntryExportType","VATLiability","ContactType","ContactColumns","ContactFilters","ContactEmailType","ContactTelephoneNumberType","ContactAddressType","ProjectStatus","ProjectBillableType","ProjectBudgetType","ProjectColumns","ProjectFilters","ContactableType","IntegrationType","LedgerItemType","ProductColumns","ProductFilters","WorkspaceCableEventType","WorkspaceEvents","WorkspaceChannelEventType","ImportTimeEntryGroupByOption","MimeTypes","BizzeyFileType","BizzeyFileResourceType","SmtpAuthType","SmtpSSLType","CustomFieldType","CustomFieldModel","ResourceListFilterType","ResourceListFilterPredicate","CalendarResourceType","CalendarEventReminderType","CalendarEventReminderUnit","CalendarEventType","CalendarEventStatus","CalendarEventProvider","CalendarEventAttendeeStatus","CalendarViewEventType","ContractStatus","ContentBlockResource","ContentBlockType","ItemsView","ItemsSelectionType","ItemsSelectionRequirementType","QuestionAndAnswerType","ContractChannelEventType","SignatureType","ProposalStatus","ProposalChannelEventType","PaymentMethodType","FormChannelEventType","SpreadsheetExportType","TimeTrackingViewReportMode","TimeTrackingViewReportType","NavigationMenuListType","NavigationMenuItemPage","NavigationMenuItemType","LedgerItemPaymentMethod","PaymentColumns","PaymentFilters","PaymentInitiationStatus","DealStageAction","DealStatus","DealViewActionType","LedgerItemExportType","ExpenseExportType","ExportTimePeriod","RateType","CalendarIntegrationType","ContactViewActionType","AccountColumns","AccountFilters","TransactionColumns","TransactionFilters","PlaybookableType","PlaybookChannelEventType","SettingsEmailTemplate","ActivityType","ActivityTrackableType","TaskTimeTrackingViewReportType","FollowUpActionType","PushNotificationDataType","CallOutcome","CallDirection","SequenceStepType","SequenceChannelEventType","SequenceEnrollmentStatus"],"sourceRoot":""}