import { ContentTypeSnippetContracts } from '../../contracts';
import { ContentTypeElements } from '../elements/content-type-element.models';
import { SharedModels } from '../shared/shared-models';
export declare namespace ContentTypeSnippetModels {
    type ModifyContentTypeSnippetOperation = 'addInto' | 'remove' | 'replace' | 'move';
    class ContentTypeSnippet implements SharedModels.IBaseModel<ContentTypeSnippetContracts.IContentTypeSnippetContract> {
        id: string;
        name: string;
        codename: string;
        lastModified: Date;
        elements: ContentTypeElements.ContentTypeElementModel[];
        externalId?: string;
        _raw: ContentTypeSnippetContracts.IContentTypeSnippetContract;
        constructor(data: {
            id: string;
            name: string;
            codename: string;
            lastModified: Date;
            elements: ContentTypeElements.ContentTypeElementModel[];
            externalId?: string;
            _raw: ContentTypeSnippetContracts.IContentTypeSnippetContract;
        });
    }
    interface IAddContentTypeSnippetData {
        name: string;
        elements: ContentTypeElements.Element[];
        external_id?: string;
        codename?: string;
    }
    interface IModifyContentTypeSnippetData {
        op: ModifyContentTypeSnippetOperation;
        path: string;
        value?: any;
        before?: SharedModels.IReferenceObject;
        after?: SharedModels.IReferenceObject;
    }
}
