export declare namespace Contracts {
    interface IPaginationContract {
        skip: number;
        limit: number;
        count: number;
        next_page: string;
        total_count?: number;
    }
    interface IContentTypeElementContract {
        codename?: string;
        type: string;
        name: string;
        taxonomy_group?: string;
        options?: IElementOptionContract[];
    }
    interface IContentTypeElementsContainer {
        [key: string]: IContentTypeElementContract;
    }
    interface IElementOptionContract {
        name: string;
        codename: string;
    }
    interface IListLanguagesContract {
        languages: ILanguageContract[];
        pagination: IPaginationContract;
    }
    interface IContentItemDeltaContract {
        data: {
            system: IContentItemSystemAttributesContract;
            elements: IContentItemElementsContracts | undefined;
        };
        change_type: 'changed_item' | 'deleted_item';
        timestamp: string;
    }
    interface IInitializeSyncContract {
        items: IContentItemDeltaContract[];
    }
    interface ISyncChangesContract {
        items: IContentItemDeltaContract[];
    }
    interface ILanguageContract {
        system: {
            id: string;
            name: string;
            codename: string;
        };
    }
    interface IViewContentTypeElementContract {
        codename?: string;
        type: string;
        name: string;
        taxonomy_group?: string;
        options?: IElementOptionContract[];
    }
    interface IElementContract {
        codename?: string;
        name: string;
        type: string;
        value: any;
        taxonomy_group?: string;
    }
    interface IDateTimeElementContract extends IElementContract {
        /**
         * Display time zone
         */
        display_timezone: string;
    }
    interface IAsssetRenditionContract {
        rendition_id: string;
        preset_id: string;
        width: number;
        height: number;
        query: string;
    }
    interface IAssetContract {
        name: string;
        type: string;
        size: number;
        description: string;
        url: string;
        width: number | null;
        height: number | null;
        renditions?: {
            [renditionPresetCodename: string]: IAsssetRenditionContract;
        };
    }
    interface IMultipleChoiceOptionContract {
        name: string;
        codename: string;
    }
    interface ITaxonomyTerm {
        name: string;
        codename: string;
    }
    interface IRichTextElementLinkWrapperContract {
        [key: string]: IRichTextElementLinkContract;
    }
    interface IRichTextElementLinkContract {
        type: string;
        codename: string;
        url_slug: string;
    }
    interface IRichTextElementImageWrapperContract {
        [key: string]: IRichTextElementImageContract;
    }
    interface IRichTextElementImageContract {
        image_id: string;
        url: string;
        description: string | null;
        height: number | null;
        width: number | null;
    }
    interface IRichTextElementContract extends IElementContract {
        /**
         * Modular content items
         */
        modular_content: string[];
        /**
         * Json with links
         */
        links: IRichTextElementLinkWrapperContract;
        /**
         * Json with images
         */
        images: IRichTextElementImageWrapperContract;
    }
    interface IContentItemElementsContracts {
        [key: string]: IElementContract;
    }
    interface ILinkContract {
        codename: string;
        type: string;
        url_slug: string;
    }
    interface IModularContentContract {
        [key: string]: IModularContentContentItemContract;
    }
    interface IModularContentContentItemContract {
        system: IContentItemSystemAttributesContract;
        elements: IContentItemElementsContracts;
    }
    interface IContentItemContract {
        system: IContentItemSystemAttributesContract;
        elements: IContentItemElementsContracts;
    }
    interface IContentItemSystemAttributesContract {
        id: string;
        name: string;
        codename: string;
        type: string;
        last_modified: string;
        language: string;
        sitemap_locations: string[];
        collection: string;
        workflow_step: string | null;
        workflow: string | null;
    }
    interface IItemsWithModularContentContract {
        items: IContentItemContract[];
        modular_content: IModularContentContract;
    }
    interface IItemsFeedContract extends IItemsWithModularContentContract {
    }
    interface IUsedInItemsContract {
        items: IUsedInItemContract[];
    }
    interface IUsedInItemContract {
        system: {
            id: string;
            name: string;
            codename: string;
            language: string;
            type: string;
            collection: string;
            workflow: string;
            workflow_step: string;
            last_modified: string;
        };
    }
    interface IListContentItemsContract extends IItemsWithModularContentContract {
        pagination: IPaginationContract;
    }
    interface IViewContentItemContract {
        item: IContentItemContract;
        modular_content: IModularContentContract;
    }
    interface ITaxonomyTermsContract {
        name: string;
        codename: string;
        terms: ITaxonomyTermsContract[];
    }
    interface ITaxonomySystemAttributesContract {
        id: string;
        name: string;
        codename: string;
        last_modified: Date;
    }
    interface ITaxonomyGroupContract {
        system: ITaxonomySystemAttributesContract;
        terms: ITaxonomyTermsContract[];
    }
    interface IViewTaxonomyGroupContract {
        system: ITaxonomySystemAttributesContract;
        terms: ITaxonomyTermsContract[];
    }
    interface IListTaxonomyGroupsContract {
        taxonomies: ITaxonomyGroupContract[];
        pagination: IPaginationContract;
    }
    interface IContentTypeSystemAttributesContract {
        id: string;
        name: string;
        codename: string;
        last_modified: Date;
    }
    interface IContentTypeContract {
        system: IContentTypeSystemAttributesContract;
        elements: IContentTypeElementsContainer;
    }
    interface IListContentTypeContract {
        types: IContentTypeContract[];
        pagination: IPaginationContract;
    }
    interface IViewContentTypeContract extends IContentTypeContract {
    }
}
