import { AutoEncoder } from '@simonbackx/simple-encoding'; import { NamedObject } from './Event.js'; import { StamhoofdFilter } from './filters/StamhoofdFilter.js'; import { ObjectWithRecords, PatchAnswers } from './members/ObjectWithRecords.js'; import { RecordAnswer } from './members/records/RecordAnswer.js'; import { RecordCategory } from './members/records/RecordCategory.js'; import { RecordSettings } from './members/records/RecordSettings.js'; export declare enum DocumentStatus { Draft = "Draft", MissingData = "MissingData", Published = "Published", Deleted = "Deleted" } export declare class DocumentStatusHelper { static getName(status: DocumentStatus): string; static getColor(status: DocumentStatus): string; } export declare class DocumentSettings extends AutoEncoder { name: string; maxAge: number | null; minPrice: number | null; minPricePaid: number | null; /** * Fields defined by the template that can be set. */ fieldAnswers: Map; /** * Defines where to automatically find the answer for a given question */ linkedFields: Map; } export declare class DocumentTemplateDefinition extends AutoEncoder { type: string | null; name: string; fieldCategories: RecordCategory[]; /** * Questions filled out for each selected group / cycle combination */ groupFieldCategories: RecordCategory[]; /** * Questions that are different for each document. They can be linked to specific fields of members later on for automatic linking. */ documentFieldCategories: RecordCategory[]; defaultMaxAge: number | null; defaultMinPrice: number | null; defaultMinPricePaid: number | null; allowChangingMaxAge: boolean; allowChangingMinPrice: boolean; allowChangingMinPricePaid: boolean; exportFieldCategories: RecordCategory[]; xmlExport: string | null; xmlExportDescription: string | null; transformForDiff(): null; } export declare class DocumentTemplateGroup extends AutoEncoder implements ObjectWithRecords { group: NamedObject; /** * @deprecated */ cycle: number; /** * Answers for groupFieldCategories for this group */ fieldAnswers: Map; getDiffName(): string; isRecordEnabled(_record: RecordSettings): boolean; doesMatchFilter(filter: StamhoofdFilter): boolean; getRecordAnswers(): Map; patchRecordAnswers(patch: PatchAnswers): this; } export declare class DocumentPrivateSettings extends AutoEncoder { templateDefinition: DocumentTemplateDefinition; /** * Groups for which the members will receive the document */ groups: DocumentTemplateGroup[]; customHtml: boolean; } export declare class DocumentTemplatePrivate extends AutoEncoder implements ObjectWithRecords { id: string; status: DocumentStatus; updatesEnabled: boolean; html: string; settings: DocumentSettings; privateSettings: DocumentPrivateSettings; year: number; createdAt: Date; updatedAt: Date; isRecordEnabled(_record: RecordSettings): boolean; getRecordAnswers(): Map; patchRecordAnswers(patch: PatchAnswers): this; doesMatchFilter(filter: StamhoofdFilter): boolean; } /** * Data stored with a document */ export declare class DocumentData extends AutoEncoder { name: string; description: string; /** * Contains a snapshot of all the answers */ fieldAnswers: Map; } export declare class Document extends AutoEncoder implements ObjectWithRecords { id: string; number: number | null; status: DocumentStatus; data: DocumentData; createdAt: Date; updatedAt: Date; memberId: string | null; registrationId: string | null; templateId: string; isRecordEnabled(_record: RecordSettings): boolean; getRecordAnswers(): Map; patchRecordAnswers(patch: PatchAnswers): this; doesMatchFilter(filter: StamhoofdFilter): boolean; } //# sourceMappingURL=Document.d.ts.map