@imgly/plugin-ai-generation-web
Version:
AI generation plugin for the CE.SDK editor
42 lines (41 loc) • 1.39 kB
TypeScript
import Provider, { GenerationOptions, Output, OutputKind } from '../core/provider';
import { Middleware } from '../middleware/middleware';
import CreativeEditorSDK, { CreativeEngine } from '@cesdk/cesdk-js';
export type ResultSuccess<O> = {
status: 'success';
type: 'async';
output: AsyncGenerator<O>;
middlewareOptions?: GenerationOptions;
} | {
status: 'success';
type: 'sync';
output: O;
middlewareOptions?: GenerationOptions;
};
export type Result<O> = ResultSuccess<O> | {
status: 'error';
message: string;
middlewareOptions?: GenerationOptions;
} | {
status: 'aborted';
middlewareOptions?: GenerationOptions;
};
export type Generate<I, O extends Output> = (input: I, options?: {
/**
* The block IDs that this generation is operating on.
* - undefined: Middleware will fall back to selected blocks
* - []: Explicitly target no blocks
* - [1, 2, 3]: Target specific blocks (e.g., placeholder block)
*/
blockIds?: number[];
abortSignal?: AbortSignal;
middlewares?: Middleware<I, O>[];
debug?: boolean;
dryRun?: boolean;
}) => Promise<Result<O>>;
declare function createGenerateFunction<K extends OutputKind, I, O extends Output>(context: {
provider: Provider<K, I, O>;
cesdk: CreativeEditorSDK;
engine: CreativeEngine;
}): Generate<I, O>;
export default createGenerateFunction;