import { Reference, InternationalString, MetadataItem, ContentResource, CollectionItemSchemas, SpecificResource, AnnotationPage, Annotation } from '@iiif/presentation-3'; import { ManifestNormalized, CollectionNormalized, CanvasNormalized, AnnotationPageNormalized, ServiceNormalized } from '@iiif/presentation-3-normalized'; import { Vault } from '@iiif/helpers/vault'; declare class BaseEntityBuilder { builder: IIIFBuilder; entity: T; protected modified: Set; protected newInstances: BaseEntityBuilder[]; protected editedInstances: BaseEntityBuilder[]; protected embeddedInstances: any[]; get id(): string; reset(entity: T): void; importRawJson(obj: any): [Reference, Resource]; dispose(): void; constructor(builder: IIIFBuilder, entity: T); getEmbeddedInstances(): any[]; getModifiedFields(): { id: string; type: string; key: string; value: any; }[]; getModifiedEntities(): any[]; getNestedEntities(): any[]; set label(value: InternationalString); setLabel(label: InternationalString): void; addLabel(label: string | string[], language?: string): void; set metadata(metadata: MetadataItem[]); setMetadata(metadata: MetadataItem[]): void; addMetadata(label: InternationalString, value: InternationalString): void; set summary(value: InternationalString); setSummary(summary: InternationalString): void; addSummary(summary: string | string[], language?: string): void; set requiredStatement(statement: { label: InternationalString; value: InternationalString; }); setRequiredStatement(statement: { label: InternationalString; value: InternationalString; }): void; set rights(text: string); setRights(text: string): void; addThumbnail(resource: ContentResource): void; set height(height: number); setHeight(height: number): void; set width(width: number); setWidth(width: number): void; set duration(duration: number); setDuration(duration: number): void; set viewingDirection(dir: string | number); setViewingDirection(dir: string | number): void; set behavior(behavior: string | string[]); set behaviour(behavior: string | string[]); setBehavior(behavior: string | string[]): void; setBehaviour(behavior: string | string[]): void; addBehaviour(behavior: string): void; addBehavior(behavior: string): void; set seeAlso(seeAlso: ContentResource[]); setSeeAlso(seeAlso: ContentResource[]): void; addSeeAlso(seeAlso: ContentResource): void; set service(service: ServiceNormalized[]); addServiceProperty(service: ServiceNormalized): void; setService(service: ServiceNormalized[]): void; set homepage(homepage: ContentResource); setHomepage(homepage: ContentResource): void; set rendering(rendering: ContentResource[]); setRendering(rendering: ContentResource[]): void; addRendering(rendering: ContentResource): void; set partOf(partOf: Reference[]); setPartOf(partOf: Reference[], isNew?: boolean): void; isPartOf(partOf: Reference): void; set start(start: SpecificResource> | null); setStart(start: SpecificResource> | null): void; addAnnotations(annotationPage: AnnotationPage): void; set services(services: ServiceNormalized[]); addServicesProperty(service: ServiceNormalized): void; setServices(services: ServiceNormalized[]): void; addEmbeddedInstance(item: any, type?: string): Reference; isAnnotationPage(entity: any): entity is AnnotationPageNormalized; isCanvas(entity: any): entity is CanvasNormalized; isManifest(entity: any): entity is ManifestNormalized; isCollection(entity: any): entity is CollectionNormalized; addLanguageProperty(name: 'label' | 'summary', value: string | string[], language?: string): void; } declare class AnnotationPageInstanceBuilder extends BaseEntityBuilder { defaultAnnotationTarget?: string; constructor(builder: IIIFBuilder, entity: AnnotationPageNormalized, defaultAnnotationTarget?: string); createAnnotation(annotation: Annotation): void; } declare class CanvasInstanceBuilder extends BaseEntityBuilder { firstAnnotationPage?: AnnotationPageInstanceBuilder; constructor(builder: IIIFBuilder, entity: CanvasNormalized); createAnnotationPage(id: string, callback: (annotationPage: AnnotationPageInstanceBuilder) => void, isAnnotationsProperty?: boolean): void; createAnnotation(id: string, annotation: Annotation): void; } declare class ManifestInstanceBuilder extends BaseEntityBuilder { constructor(builder: IIIFBuilder, entity: ManifestNormalized); createCanvas(id: string, callback: (canvas: CanvasInstanceBuilder) => void): void; editCanvas(id: string, callback: (canvas: CanvasInstanceBuilder) => void): void; } declare class CollectionInstanceBuilder extends BaseEntityBuilder { constructor(builder: IIIFBuilder, entity: CollectionNormalized); createManifest(id: string, callback: (manifest: ManifestInstanceBuilder) => void): void; createCollection(id: string, callback: (manifest: CollectionInstanceBuilder) => void): void; } declare class IIIFBuilder { vault: Vault; constructor(vault?: Vault | undefined); processBuilder(entityBuilder: BaseEntityBuilder, isNew: boolean): void; createCollection(id: string, callback: (collection: CollectionInstanceBuilder) => void): CollectionNormalized; editCollection(id: string, callback: (manifest: CollectionInstanceBuilder) => void | false): CollectionNormalized; createManifest(id: string, callback: (manifest: ManifestInstanceBuilder) => void): ManifestNormalized; editManifest(id: string, callback: (manifest: ManifestInstanceBuilder) => void | false): ManifestNormalized; toPresentation3(entity: Reference): unknown; toPresentation2(entity: Reference): unknown; } export { IIIFBuilder };