import { FilledImageFieldImage } from "./types/value/image.js"; import { FilledLinkToMediaField } from "./types/value/linkToMedia.js"; import { PrismicDocument } from "./types/value/document.js"; import { Asset } from "./types/api/asset/asset.js"; import { MigrationContentRelationship } from "./types/migration/ContentRelationship.js"; import { ExistingPrismicDocument, PendingPrismicDocument, PrismicMigrationDocument } from "./types/migration/Document.js"; import { MigrationAssetConfig, PrismicMigrationAsset } from "./types/migration/Asset.js"; //#region src/Migration.d.ts /** * Extracts one or more Prismic document types that match a given Prismic document type. If no * matches are found, no extraction is performed and the union of all provided Prismic document * types are returned. * * @typeParam TDocuments - Prismic document types from which to extract. * @typeParam TDocumentType - Type(s) to match `TDocuments` against. */ type ExtractDocumentType = Extract extends never ? TDocuments : Extract; /** * A helper that allows preparing your migration to Prismic. * * @typeParam TDocuments - Document types that are registered for the Prismic repository. Query * methods will automatically be typed based on this type. */ declare class Migration { #private; /** * Assets registered in the migration. * * @internal */ _assets: Map; /** * Documents registered in the migration. * * @internal */ _documents: PrismicMigrationDocument[]; /** * Registers an asset to be created in the migration from an asset object. * * @remarks * This method does not create the asset in Prismic media library right away. Instead, it * registers it in your migration. The asset will be created when the migration is executed * through the `writeClient.migrate()` method. * @param asset - An asset object from Prismic Asset API. * @returns A migration asset field instance. * @internal */ createAsset(asset: Asset): PrismicMigrationAsset; /** * Registers an asset to be created in the migration from an image or link to media field. * * @remarks * This method does not create the asset in Prismic media library right away. Instead, it * registers it in your migration. The asset will be created when the migration is executed * through the `writeClient.migrate()` method. * @param imageOrLinkToMediaField - An image or link to media field from Prismic Document API. * @returns A migration asset field instance. * @internal */ createAsset(imageOrLinkToMediaField: FilledImageFieldImage | FilledLinkToMediaField): PrismicMigrationAsset; /** * Registers an asset to be created in the migration from a file. * * @remarks * This method does not create the asset in Prismic media library right away. Instead, it * registers it in your migration. The asset will be created when the migration is executed * through the `writeClient.migrate()` method. * @param file - The URL or content of the file to be created. * @param filename - The filename of the asset. * @param params - Additional asset data. * @returns A migration asset field instance. */ createAsset(file: MigrationAssetConfig["file"], filename: MigrationAssetConfig["filename"], params?: { notes?: string; credits?: string; alt?: string; tags?: string[]; }): PrismicMigrationAsset; /** * Registers a document to be created in the migration. * * @remarks * This method does not create the document in Prismic right away. Instead, it registers it in * your migration. The document will be created when the migration is executed through the * `writeClient.migrate()` method. * @typeParam TType - Type of the Prismic document to create. * @param document - The document to create. * @param title - The title of the document to create which will be displayed in the editor. * @param params - Document master language document ID. * @returns A migration document instance. */ createDocument(document: ExtractDocumentType, TType>, title: string, params?: { masterLanguageDocument?: MigrationContentRelationship; }): PrismicMigrationDocument>; /** * Registers an existing document to be updated in the migration. * * @remarks * This method does not update the document in Prismic right away. Instead, it registers it in * your migration. The document will be updated when the migration is executed through the * `writeClient.migrate()` method. * @typeParam TType - Type of Prismic documents to update. * @param document - The document to update. * @param title - The title of the document to update which will be displayed in the editor. * @returns A migration document instance. */ updateDocument(document: ExtractDocumentType, TType>, title?: string): PrismicMigrationDocument>; /** * Registers a document from another Prismic repository to be created in the migration. * * @remarks * This method does not create the document in Prismic right away. Instead, it registers it in * your migration. The document will be created when the migration is executed through the * `writeClient.migrate()` method. * @param document - The document from Prismic to create. * @param title - The title of the document to create which will be displayed in the editor. * @returns A migration document instance. */ createDocumentFromPrismic(document: ExtractDocumentType, TType>, title: string): PrismicMigrationDocument>; /** * Queries a document from the migration instance with a specific UID and custom type. * * @example * ;```ts * const contentRelationship = migration.createContentRelationship(() => * migration.getByUID("blog_post", "my-first-post"), * ) * ``` * * @typeParam TType - Type of the Prismic document returned. * @param type - The API ID of the document's custom type. * @param uid - The UID of the document. * @returns The migration document instance with a UID matching the `uid` parameter, if a matching * document is found. */ getByUID(type: TType, uid: string): PrismicMigrationDocument> | undefined; /** * Queries a singleton document from the migration instance for a specific custom type. * * @example * ;```ts * const contentRelationship = migration.createContentRelationship(() => * migration.getSingle("settings"), * ) * ``` * * @typeParam TType - Type of the Prismic document returned. * @param type - The API ID of the singleton custom type. * @returns The migration document instance for the custom type, if a matching * document is found. */ getSingle(type: TType): PrismicMigrationDocument> | undefined; /** * Queries a document from the migration instance for a specific original ID. * * @example * ;```ts * const contentRelationship = migration.createContentRelationship(() => * migration._getByOriginalID("YhdrDxIAACgAcp_b"), * ) * ``` * * @typeParam TType - Type of the Prismic document returned. * @param id - The original ID of the Prismic document. * @returns The migration document instance for the original ID, if a matching * document is found. * @internal */ _getByOriginalID(id: string): PrismicMigrationDocument> | undefined; } //#endregion export { Migration }; //# sourceMappingURL=Migration.d.ts.map