import { ElementModels } from '../elements/elements.models';
import { SharedModels } from '../shared/shared-models';
import { LanguageVariantContracts, SharedContracts } from '../../contracts';
export declare namespace LanguageVariantModels {
    interface ILanguageVariantElementInfo {
        id?: string;
        codename?: string;
        external_id?: string;
    }
    interface ILanguageVariantSchedule {
        publishTime: string | null;
        publishDisplayTimezone: string | null;
        unpublishTime: string | null;
        unpublishDisplayTimezone: string | null;
    }
    interface ILanguageVariantDueDate {
        value: string | null;
    }
    class ContentItemLanguageVariant implements SharedModels.IBaseModel<LanguageVariantContracts.ILanguageVariantModelContract> {
        item: SharedModels.ReferenceObject;
        elements: ElementModels.ContentItemElement[];
        language: SharedModels.ReferenceObject;
        lastModified: Date;
        workflow: {
            workflowIdentifier: SharedModels.ReferenceObject;
            stepIdentifier: SharedModels.ReferenceObject;
        };
        schedule: ILanguageVariantSchedule;
        dueDate: ILanguageVariantDueDate;
        note?: string;
        contributors: SharedContracts.UserReferenceContract[];
        _raw: LanguageVariantContracts.ILanguageVariantModelContract;
        constructor(data: {
            item: SharedModels.ReferenceObject;
            elements: ElementModels.ContentItemElement[];
            language: SharedModels.ReferenceObject;
            lastModified: Date;
            schedule: ILanguageVariantSchedule;
            dueDate: ILanguageVariantDueDate;
            note?: string;
            contributors: SharedContracts.UserReferenceContract[];
            workflow: {
                workflowIdentifier: SharedModels.ReferenceObject;
                stepIdentifier: SharedModels.ReferenceObject;
            };
            _raw: LanguageVariantContracts.ILanguageVariantModelContract;
        });
    }
    class ContentItemLanguageWithComponentsVariant {
        item: SharedModels.ReferenceObject;
        elements: ElementModels.ContentItemElement[];
        language: SharedModels.ReferenceObject;
        lastModified: Date;
        schedule: ILanguageVariantSchedule;
        dueDate: ILanguageVariantDueDate;
        workflow: {
            workflowIdentifier: SharedModels.ReferenceObject;
            stepIdentifier: SharedModels.ReferenceObject;
        };
        _raw: LanguageVariantContracts.ILanguageVariantModelsContract;
        constructor(data: {
            rawElements: any;
            item: SharedModels.ReferenceObject;
            elements: ElementModels.ContentItemElement[];
            language: SharedModels.ReferenceObject;
            lastModified: Date;
            schedule: ILanguageVariantSchedule;
            dueDate: ILanguageVariantDueDate;
            workflow: {
                workflowIdentifier: SharedModels.ReferenceObject;
                stepIdentifier: SharedModels.ReferenceObject;
            };
            _raw: LanguageVariantContracts.ILanguageVariantModelsContract;
        });
    }
}
