import { type AdminExtension, type SelectedAdminExtensionFactoryContext } from "@voyant-travel/admin"; /** * Semantic destinations the legal admin surfaces navigate to * (packaged-admin RFC §4.7). Keys shared with other domains * (`person.detail`, `booking.detail`) come from the bookings-ui * augmentation bound above; declared here are the legal-owned targets the * packaged pages and breadcrumbs resolve through * `useAdminHref`/`useAdminNavigate`. */ declare module "@voyant-travel/admin" { interface AdminDestinations { /** The legal area's landing surface (redirects to contracts). */ "legal.home": Record; /** The contracts list page. */ "contract.list": Record; /** A contract's detail page. */ "contract.detail": { contractId: string; }; /** The contract templates list page. */ "contractTemplate.list": Record; /** A contract template's detail page. */ "contractTemplate.detail": { templateId: string; }; /** The policies list page. */ "policy.list": Record; /** A policy's detail page. */ "policy.detail": { policyId: string; }; } } export type { ContractDetailHostProps } from "./contract-detail-host.js"; export type { ContractDialogProps } from "./contract-dialog.js"; export type { AssignmentData, PolicyAssignmentDialogProps } from "./policy-assignment-dialog.js"; export type { PolicyDetailHostProps } from "./policy-detail-host.js"; export type { TemplateDetailHostProps } from "./template-detail-host.js"; export interface CreateLegalAdminExtensionOptions { /** Mount path of the legal pages inside the admin workspace. Default `/legal`. */ basePath?: string; /** Localized page titles. Defaults are the English operator nav labels. */ labels?: { contracts?: string; contractTemplates?: string; policies?: string; numberSeries?: string; }; } /** * The legal admin contribution (packaged-admin RFC Phase 3, * `@voyant-travel/-ui/admin` convention). * * NAVIGATION: the general-purpose factory remains neutral. The graph-selected * factory below adds the standard operator Legal group. * * ROUTES: full implementations (packaged-admin RFC §4.8 endgame) — each * contribution carries the lazy `page` module loader, the data loader and * the per-route SSR mode, so hosts bind them through their code-assembled * admin route tree with no per-route files. List pages * ({@link ContractsHost}, {@link TemplatesHost}, {@link PoliciesHost}, * {@link NumberSeriesHost}) are zero-prop; the detail contributions resolve * wrapper pages (`./pages/*`) that bind the matched `$id` param onto * {@link ContractDetailHost}, {@link TemplateDetailHost} and * {@link PolicyDetailHost}. Pages stay code-split because every `page` is a * dynamic import of the specific host module, never a static reference from * this factory. * * WIDGETS: none today. The legal-owned `BookingContractCard` ships from the * package root, but no operator surface currently mounts it through a * widget slot — the booking detail page's documents/contract wiring is an * operator bookings-domain concern and stays with that host. */ export declare function createLegalAdminExtension(options?: CreateLegalAdminExtensionOptions): AdminExtension; export declare function createSelectedLegalAdminExtension({ navMessages, }: SelectedAdminExtensionFactoryContext): AdminExtension;