import { AriaLabelsTranslation, ServiceLegalBasis } from '../../Api/interfaces';
export interface Label {
    description: string;
    title: string;
}
export interface DefaultServiceLabels {
    dataCollected: Label;
    dataDistribution: {
        processingLocationDescription: string;
        processingLocationTitle: string;
        thirdPartyCountriesDescription: string;
        thirdPartyCountriesTitle: string;
    };
    dataProtectionOfficer: Label;
    dataPurposes: Label;
    dataRecipients: Label;
    descriptionTitle: string;
    history: {
        /** Currently non-customizable. Value set as: null */
        description: string | null;
        title: string;
    };
    legalBasis: Label;
    processingCompanyTitle: string;
    retentionPeriod: Label;
    technologiesUsed: Label;
    urls: {
        cookiePolicyTitle: string;
        optOutTitle: string;
        privacyPolicyTitle: string;
    };
}
export interface DefaultGeneralLabels {
    back: string;
    consentGiven: string;
    consentNotGiven: string;
    /** Currently non-customizable. Value set as: "Consent type" (translated) */
    consentType: string;
    /** Permanently non-customizable. Value set as: "Controller ID" (translated) */
    controllerId: string;
    copy: string;
    copied: string;
    date: string;
    /** Currently non-customizable. Value set as: "Decision" (translated) */
    decision: string;
    details: string;
    /** Currently non-customizable. Value set as: "Explicit" (translated) */
    explicit: string;
    gpcSignalHonored: string;
    /** Currently non-customizable. Value set as: "Implicit" (translated) */
    implicit: string;
    implicitNo: string;
    implicitYes: string;
    privacyButton: string;
    /** Currently non-customizable. Value set as: "Show more" (translated) */
    showLess: string;
    showMore: string;
    subservice: string;
    subservices: string;
    subservicesDescription: string;
}
export interface CookieInformationLabels {
    anyDomain: string;
    cookieRefresh: string;
    cookieStorage: string;
    day: string;
    days: string;
    description: string;
    domain: string;
    duration: string;
    error: string;
    hour: string;
    hours: string;
    identifier: string;
    loading: string;
    maximumAge: string;
    minute: string;
    minutes: string;
    month: string;
    months: string;
    multipleDomains: string;
    name: string;
    no: string;
    nonCookieStorage: string;
    purposes: string;
    second: string;
    seconds: string;
    session: string;
    storedInformation: string;
    storedInformationDescription: string;
    title: string;
    titleDetailed: string;
    tryAgain: string;
    type: string;
    year: string;
    years: string;
    yes: string;
}
export interface PoweredbyLabels {
    label: string;
    partnerUrlLabel: string | null;
    urlLabel: string;
}
export interface CcpaButtonLabels {
    optOutNotice: string;
    save: string;
    showSecondLayer: string;
}
export interface DefaultButtonLabels {
    acceptAll: string;
    cnilDeny: string;
    denyAll: string;
    save: string;
    showSecondLayer: string;
}
export interface TCFButtonLabels {
    acceptAll: string;
    denyAll: string;
    manageSettings: string;
    save: string;
    showVendorTab: string;
}
export interface PrivacyButtonButtonsLabels {
    save: string;
}
export interface CategoryLabels {
    description: string;
    label: string;
    slug: string;
}
export interface ServiceLabels {
    description: string;
    id: string;
    legalBasis: ServiceLegalBasis[];
    name: string;
}
interface FirstLayerCommonLabels {
    description: {
        default: string;
        /**
         * @deprecated use shortMobile & shortDefault
         */
        short: string;
        shortMobile: string;
        shortDesktop: string;
    };
    title: string;
}
export type CcpaFirstLayerLabels = FirstLayerCommonLabels;
export type DefaultFirstLayerLabels = FirstLayerCommonLabels;
export type PrivacyButtonFirstLayerLabels = FirstLayerCommonLabels;
export interface TCFFirstLayerLabels {
    description: {
        additionalInfo: string | null;
        dataSharedOutsideEUText: string | null;
        default: string;
        resurfaceNote: string | null;
    };
    disclaimer: {
        serviceScope: string;
    };
    title: string;
}
interface SecondLayerCommonLabels {
    categoryTab: string;
    description: string;
    serviceTab: string;
    title: string;
    dataTransferFilter?: DataTransferFilter;
}
interface DataTransferFilter {
    all: string;
    thirdCountry: string;
}
export type CcpaSecondLayerLabels = SecondLayerCommonLabels;
export type PrivacyButtonSecondLayerLabels = SecondLayerCommonLabels;
export interface DefaultSecondLayerLabels extends SecondLayerCommonLabels {
    acceptButtonLabel: string;
    denyButtonLabel: string;
}
export interface TCFSecondLayerLabels {
    dataSharedOutsideEU: {
        text: string | null;
        title: string;
    };
    dataTransferFilter: DataTransferFilter;
    description: string;
    maxStorageDurationText: string;
    maxStorageDurationTitle: string;
    purposesTab: string;
    title: string;
    vendorsTab: string;
}
export interface TCFTogglesLabels {
    consent: string;
    legitimateInterest: string;
    specialFeaturesToggle: {
        offLabel: string;
        onLabel: string;
    };
}
export interface TCFVendorLabels {
    dataCategories: string;
    dataRetention: string;
    dataRetentionUnit: string;
    features: string;
    legitimateInterest: string;
    legitimateInterestClaim: string;
    privacyPolicy: string;
    purposes: string;
    specialFeatures: string;
    specialPurposes: string;
    toggleAll: string;
}
export interface TCFTitleLabels {
    examples: string;
    features: string;
    iabVendors: string;
    acmVendors: string;
    nonIabPurposes: string;
    nonIabVendors: string;
    purposes: string;
}
export interface ACMVendorLabels {
    privacyPolicy: string;
}
export interface AriaLabel {
    ariaLabel: string;
    label: string | null;
    url: string | null;
}
export interface LinksLabels {
    cookiePolicy: AriaLabel;
    imprint: AriaLabel;
    privacyPolicy: AriaLabel;
}
export interface AriaLabels {
    ariaLabels: AriaLabelsTranslation;
}
export interface CommonLabels extends AriaLabels {
    categories: CategoryLabels[];
    cookieInformation: CookieInformationLabels;
    general: DefaultGeneralLabels;
    links: LinksLabels;
    integrationLinks?: Record<string, AriaLabel>;
    poweredBy: PoweredbyLabels;
    service: DefaultServiceLabels;
    services: ServiceLabels[];
}
export interface CcpaLabels extends CommonLabels {
    buttons: CcpaButtonLabels;
    firstLayer: CcpaFirstLayerLabels;
    secondLayer: CcpaSecondLayerLabels;
}
export interface DefaultLabels extends CommonLabels {
    buttons: DefaultButtonLabels;
    firstLayer: DefaultFirstLayerLabels;
    secondLayer: DefaultSecondLayerLabels;
}
export interface TcfLabels extends CommonLabels {
    buttons: TCFButtonLabels;
    firstLayer: TCFFirstLayerLabels;
    secondLayer: TCFSecondLayerLabels;
    titles: TCFTitleLabels;
    toggles: TCFTogglesLabels;
    vendor: TCFVendorLabels;
    acmVendor: ACMVendorLabels;
}
export interface PrivacyButtonLabels {
    privacyButton: string;
    services: ServiceLabels[];
}
export type Labels = CcpaLabels | DefaultLabels | TcfLabels | PrivacyButtonLabels;
export {};
