import type { useOperatorAdminMessages } from "@voyant-travel/admin"; import type { UseFormSetValue, UseFormWatch } from "react-hook-form"; import { z } from "zod/v4"; import type { LegalContractRecord } from "../index.js"; import type { ComboboxOption } from "./legal-admin-shared.js"; type ContractDialogMessages = ReturnType["legal"]["contractDialog"]; export declare const contractFormSchema: z.ZodObject<{ scope: z.ZodEnum<{ other: "other"; customer: "customer"; supplier: "supplier"; partner: "partner"; channel: "channel"; }>; title: z.ZodString; contractNumber: z.ZodOptional; language: z.ZodOptional; templateVersionId: z.ZodOptional; seriesId: z.ZodOptional; personId: z.ZodOptional; organizationId: z.ZodOptional; supplierId: z.ZodOptional; channelId: z.ZodOptional; expiresAt: z.ZodOptional; templateVariables: z.ZodArray; example: z.ZodOptional; required: z.ZodDefault; value: z.ZodOptional; booleanValue: z.ZodDefault; }, z.core.$strip>>; additionalVariables: z.ZodArray; value: z.ZodOptional; }, z.core.$strip>>; metadataEntries: z.ZodArray; value: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type FormValues = z.input; export type FormOutput = z.output; export interface ContractDialogProps { open: boolean; onOpenChange: (open: boolean) => void; contract?: LegalContractRecord; onSuccess: () => void; } export type TemplateVariableRow = FormValues["templateVariables"][number]; export declare const SCOPE_VALUES: readonly ["customer", "supplier", "partner", "channel", "other"]; export type ContractScopeKey = (typeof SCOPE_VALUES)[number]; export declare const languageOptions: ComboboxOption[]; export declare function objectToEntries(record: Record | null | undefined): { key: string; value: string; }[]; export declare function buildRecordFromPairs(entries: Array<{ key?: string; value?: string; }>): Record | undefined; export declare function buildVariablesPayload(rows: TemplateVariableRow[], additional: Array<{ key?: string; value?: string; }>): Record | undefined; export declare function formatUploadSize(bytes: number): string; export declare function inferTemplateVariableKeys(body: string | null | undefined, requiredKeys: string[]): Set; export declare function VariableValueField({ row, index, setValue, watch, messages, }: { row: TemplateVariableRow; index: number; setValue: UseFormSetValue; watch: UseFormWatch; messages: ContractDialogMessages; }): import("react").JSX.Element; export {};