export type SiteLegalJurisdiction = 'UK' | 'US' | 'EU' | 'CA' | 'AU' | 'OTHER';
export type SiteLegalProfilePayload = {
    legalEntityName: string | null;
    privacyContactEmail: string | null;
    jurisdiction: SiteLegalJurisdiction;
};
export type SitePrivacyPolicyCapabilities = {
    usesNecessaryCookies: boolean;
    usesAnalyticsCookies: boolean;
    usesForms: boolean;
    usesNewsletter: boolean;
    usesBookings: boolean;
    usesCustomerPortal: boolean;
    usesPayments: boolean;
    usesSensitiveClientRecords: boolean;
};
export type SitePrivacyPolicySection = {
    id: string;
    title: string;
    paragraphs: string[];
};
export type SitePrivacyPolicyDocument = {
    title: string;
    effectiveDate: string;
    sections: SitePrivacyPolicySection[];
};
export declare const SENSITIVE_CLIENT_RECORDS_CONFIRMATION_VERSION: 1;
export declare const SENSITIVE_CLIENT_RECORDS_CONFIRMATION_KEYS: readonly ["mayStoreSensitiveClientData", "hasLawfulBasisAndCondition", "privacyNoticeWillDisclose", "staffAccessIsUnderstood", "retentionIsControllerManaged"];
export type SensitiveClientRecordsConfirmationKey = (typeof SENSITIVE_CLIENT_RECORDS_CONFIRMATION_KEYS)[number];
export type SensitiveClientRecordsMode = "standard" | "enabled";
export type SensitiveClientRecordsRetentionProfile = "standard" | "clinical_sensitive_records";
export type SensitiveClientRecordsUpdatePayload = {
    mode: SensitiveClientRecordsMode;
    confirmations: Partial<Record<SensitiveClientRecordsConfirmationKey, boolean>>;
};
export type SensitiveClientRecordsSettings = {
    mode: SensitiveClientRecordsMode;
    retentionProfile: SensitiveClientRecordsRetentionProfile;
    enabledAt: string | null;
    enabledByUserId: string | null;
    confirmationVersion: number | null;
    acceptedConfirmationKeys: SensitiveClientRecordsConfirmationKey[];
    disableRequiresSupport: boolean;
};
export type SitePrivacySettingsPayload = {
    legalProfile: SiteLegalProfilePayload;
    sensitiveClientRecords?: SensitiveClientRecordsUpdatePayload;
};
export type SitePrivacySettings = {
    legalProfile: SiteLegalProfilePayload;
    sensitiveClientRecords: SensitiveClientRecordsSettings;
};
export type SitePrivacySettingsResponse = {
    settings: SitePrivacySettings;
    preview: {
        policyPath: string;
        isReady: boolean;
        capabilities: SitePrivacyPolicyCapabilities;
        document: SitePrivacyPolicyDocument | null;
    };
};
export type SiteRuntimePrivacyPolicy = {
    path: string;
    enabled: boolean;
    legalProfile: SiteLegalProfilePayload;
    capabilities: SitePrivacyPolicyCapabilities;
    document: SitePrivacyPolicyDocument | null;
};
export declare const MANAGED_PRIVACY_POLICY_PATH: "/privacy";
export declare const DEFAULT_SITE_LEGAL_JURISDICTION: SiteLegalJurisdiction;
export declare const JURISDICTION_LABELS: Record<SiteLegalJurisdiction, string>;
export declare function buildManagedPrivacyPolicyDocument(input: {
    legalProfile: SiteLegalProfilePayload;
    capabilities: SitePrivacyPolicyCapabilities;
    effectiveDate: string;
}): SitePrivacyPolicyDocument;
