import type { FinanceUiMessages } from "../../i18n/index.js"; export declare const TAX_CODE_OPTIONS: readonly ["standard", "reduced", "exempt", "reverse_charge", "margin_scheme_art311", "zero_rated", "out_of_scope", "other"]; export type TaxRegimeCode = (typeof TAX_CODE_OPTIONS)[number]; export type TaxClassAppliesTo = "base" | "addon" | "accommodation" | "all"; export type TaxPolicySide = "sell" | "buy"; export type TaxPolicyConditionMode = "always" | "all" | "any"; export type TaxPolicyConditionFact = "hasAccommodation" | "accommodationCountries"; export type TaxPolicyConditionOperator = "eq" | "contains"; export interface TaxesPageApi { get: (path: string) => Promise; post: (path: string, body?: unknown) => Promise; patch: (path: string, body?: unknown) => Promise; delete: (path: string) => Promise; } export interface TaxesPageProps { api?: TaxesPageApi; } export declare const TaxesPageApiContext: import("react").Context; export declare function createTaxesPageApi(baseUrl: string, fetcher: (url: string, init?: RequestInit) => Promise): TaxesPageApi; export declare function useTaxesPageApi(): TaxesPageApi; export declare const TAX_CLASS_APPLIES_TO_OPTIONS: TaxClassAppliesTo[]; export declare const TAX_POLICY_CONDITION_FACT_OPTIONS: TaxPolicyConditionFact[]; export type TaxRegimeRecord = { id: string; code: TaxRegimeCode; name: string; jurisdiction: string | null; ratePercent: number | null; description: string | null; legalReference: string | null; active: boolean; }; export type TaxClassRecord = { id: string; code: string; label: string; description: string | null; defaultRegimeId: string | null; lines: TaxClassLineRecord[] | null; active: boolean; }; export type TaxClassLineRecord = { regime_id: string; applies_to: TaxClassAppliesTo; }; export type TaxRow = { taxClass: TaxClassRecord; regime: TaxRegimeRecord | null; }; export type TaxPolicyProfileRecord = { id: string; code: string; name: string; jurisdiction: string | null; description: string | null; active: boolean; }; export type TaxPolicyRuleRecord = { id: string; profileId: string; side: TaxPolicySide; priority: number; name: string; appliesTo: TaxClassAppliesTo; condition: Record | null; taxRegimeId: string; active: boolean; }; export type TaxFormState = { taxClassLabel: string; taxClassCode: string; taxClassDescription: string; regimeName: string; regimeCode: TaxRegimeCode; jurisdiction: string; ratePercent: string; regimeDescription: string; legalReference: string; lines: Array<{ key: string; appliesTo: TaxClassAppliesTo; regimeId: string; }>; active: boolean; }; export type PolicyProfileFormState = { name: string; code: string; jurisdiction: string; description: string; active: boolean; }; export type PolicyRuleFormState = { profileId: string; side: TaxPolicySide; priority: string; name: string; appliesTo: TaxClassAppliesTo; conditionMode: TaxPolicyConditionMode; conditions: Array<{ key: string; fact: TaxPolicyConditionFact; operator: TaxPolicyConditionOperator; value: string; }>; taxRegimeId: string; active: boolean; }; export declare function nextTaxClassLineKey(seed?: string): string; export declare function nextTaxPolicyConditionKey(seed?: string): string; export declare function initialForm(row: TaxRow | undefined): TaxFormState; export declare function initialPolicyProfileForm(profile: TaxPolicyProfileRecord | undefined): PolicyProfileFormState; export declare function initialPolicyRuleForm(rule: TaxPolicyRuleRecord | undefined, profileId: string, taxRegimeId: string): PolicyRuleFormState; export declare function toSlug(value: string): string; export declare function formatRate(value: number | null): string; export declare function appliesToLabel(messages: FinanceUiMessages, appliesTo: TaxClassAppliesTo): string; export declare function summarizeCondition(messages: FinanceUiMessages, condition: Record | null): string; export declare function normalizeCondition(condition: PolicyRuleFormState["conditions"][number]): PolicyRuleFormState["conditions"][number]; export declare function buildPolicyCondition(form: PolicyRuleFormState, taxMessages: FinanceUiMessages["taxesPage"]): Record;