import type { CreationEntityState } from './CreationEntityState';
import type { DocumentTemplateType } from './DocumentTemplateType';
/**
 * A document template contains the customizations for a particular document template type.
 * @export
 * @interface DocumentTemplate
 */
export interface DocumentTemplate {
    /**
     * Whether documents of this template should be delivered.
     * @type {boolean}
     * @memberof DocumentTemplate
     */
    readonly deliveryEnabled?: boolean;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof DocumentTemplate
     */
    readonly linkedSpaceId?: number;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof DocumentTemplate
     */
    readonly spaceId?: number;
    /**
     * Whether this is the default document template which is used whenever no specific template is specified for the same template type.
     * @type {boolean}
     * @memberof DocumentTemplate
     */
    readonly defaultTemplate?: boolean;
    /**
     * The name used to identify the document template.
     * @type {string}
     * @memberof DocumentTemplate
     */
    readonly name?: string;
    /**
     * The date and time when the object is planned to be permanently removed. If the value is empty, the object will not be removed.
     * @type {Date}
     * @memberof DocumentTemplate
     */
    readonly plannedPurgeDate?: Date;
    /**
     * The resource path to a custom template to be used to generate PDF documents.
     * @type {string}
     * @memberof DocumentTemplate
     */
    readonly templateResource?: string;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof DocumentTemplate
     */
    readonly id?: number;
    /**
     *
     * @type {CreationEntityState}
     * @memberof DocumentTemplate
     */
    state?: CreationEntityState;
    /**
     *
     * @type {DocumentTemplateType}
     * @memberof DocumentTemplate
     */
    type?: DocumentTemplateType;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof DocumentTemplate
     */
    readonly version?: number;
}
/**
 * Check if a given object implements the DocumentTemplate interface.
 */
export declare function instanceOfDocumentTemplate(value: object): value is DocumentTemplate;
export declare function DocumentTemplateFromJSON(json: any): DocumentTemplate;
export declare function DocumentTemplateFromJSONTyped(json: any, ignoreDiscriminator: boolean): DocumentTemplate;
export declare function DocumentTemplateToJSON(json: any): DocumentTemplate;
export declare function DocumentTemplateToJSONTyped(value?: Omit<DocumentTemplate, 'deliveryEnabled' | 'linkedSpaceId' | 'spaceId' | 'defaultTemplate' | 'name' | 'plannedPurgeDate' | 'templateResource' | 'id' | 'version'> | null, ignoreDiscriminator?: boolean): any;
