import { type ReactNode } from "react"; import { type AuthLegalConsentStorageOptions } from "./legalConsentStorage.js"; export type AuthLegalDocument = { id: string; title: string; version: string; href: string; required?: boolean; acceptance: Record; description?: ReactNode; }; export type AuthLegalConsentOptions = { enabled?: boolean; documents: readonly AuthLegalDocument[]; title?: ReactNode; description?: ReactNode; confirmLabel?: ReactNode; cancelLabel?: ReactNode; selectAllOnFirstDocumentCheck?: boolean; storage?: false | AuthLegalConsentStorageOptions; payloadKey?: string; buildPayload?: (documents: readonly AuthLegalDocument[]) => Record; }; export type AuthLegalConsentDialogProps = { open: boolean; options: AuthLegalConsentOptions; selectedDocumentIds: ReadonlySet; onDocumentChange: (documentId: string, checked: boolean) => void; onConfirm: () => void; onOpenChange: (open: boolean) => void; }; type LegalAction = (acceptedDocuments: readonly AuthLegalDocument[]) => void | Promise; export declare function buildAuthLegalPayload(options: AuthLegalConsentOptions | undefined, documents: readonly AuthLegalDocument[]): Record; export declare function useAuthLegalConsent(options?: AuthLegalConsentOptions): { request: (action: LegalAction) => void; dialog: import("react/jsx-runtime").JSX.Element | null; }; export declare function AuthLegalConsentDialog({ open, options, selectedDocumentIds, onDocumentChange, onConfirm, onOpenChange, }: AuthLegalConsentDialogProps): import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=LegalConsent.d.ts.map