/**
 * integrations.ts — External service integrations for editors.
 *
 * Stock image pickers (Unsplash/Pexels), Adobe CC connector,
 * Figma import/export, template library, and AI image generation.
 */
export interface StockImage {
    id: string;
    url: string;
    thumbnailUrl: string;
    author: string;
    source: "unsplash" | "pexels";
    width: number;
    height: number;
    description?: string;
}
export interface StockImageSearchOptions {
    query: string;
    page?: number;
    perPage?: number;
    orientation?: "landscape" | "portrait" | "squarish";
}
export interface FigmaImportResult {
    nodes: FigmaNode[];
    images: Map<string, Blob>;
}
export interface FigmaNode {
    id: string;
    name: string;
    type: string;
    width: number;
    height: number;
    svg?: string;
    imageData?: ImageData;
}
export interface AIGenerationOptions {
    prompt: string;
    width?: number;
    height?: number;
    style?: "realistic" | "artistic" | "pixel-art" | "vector" | "sketch";
    provider: "openai" | "stability" | "custom";
    apiKey?: string;
    apiUrl?: string;
}
export interface AIGenerationResult {
    imageUrl: string;
    imageBlob: Blob;
    metadata: Record<string, unknown>;
}
export interface TemplateItem {
    id: string;
    name: string;
    category: string;
    thumbnailUrl: string;
    width: number;
    height: number;
    data: unknown;
}
export declare class UnsplashProvider {
    private accessKey;
    constructor(accessKey: string);
    search(options: StockImageSearchOptions): Promise<StockImage[]>;
}
export declare class PexelsProvider {
    private apiKey;
    constructor(apiKey: string);
    search(options: StockImageSearchOptions): Promise<StockImage[]>;
}
export interface AdobeCCConfig {
    clientId: string;
    redirectUri: string;
}
export declare class AdobeCCConnector {
    private config;
    constructor(config: AdobeCCConfig);
    /** Get the OAuth authorization URL. */
    getAuthUrl(): string;
    /** Import a file from Adobe CC Libraries. */
    importFromLibrary(accessToken: string, assetId: string): Promise<Blob>;
}
export declare class FigmaConnector {
    private accessToken;
    constructor(accessToken: string);
    /** Import nodes from a Figma file. */
    importFile(fileKey: string, nodeIds?: string[]): Promise<FigmaImportResult>;
    /** Export a design to Figma (via plugin API—returns Figma plugin code). */
    exportToFigmaPlugin(svg: string, nodeName?: string): string;
    private extractNodes;
}
export declare class TemplateLibrary {
    private templates;
    /** Register a template. */
    register(template: TemplateItem): void;
    /** Get all templates. */
    getAll(): TemplateItem[];
    /** Get templates by category. */
    getByCategory(category: string): TemplateItem[];
    /** Get all categories. */
    getCategories(): string[];
    /** Search templates by name. */
    search(query: string): TemplateItem[];
}
export declare function generateAIImage(options: AIGenerationOptions): Promise<AIGenerationResult>;
