import { type FieldProcessor } from '@ephox/boulder'; import * as AlloyParts from '../../parts/AlloyParts'; import type { PartTypeAdt } from '../../parts/PartType'; import type { BaseSketchDetail, BaseSketchSpec } from '../../spec/SpecSchema'; import type { AlloyComponent } from '../component/ComponentApi'; import type { AlloySpec, SketchSpec } from '../component/SpecTypes'; import * as UiSketcher from './UiSketcher'; export interface SingleSketchSpec extends BaseSketchSpec { } export interface SingleSketchDetail extends BaseSketchDetail { } type SketcherApisFunc = (apis: A, comp: AlloyComponent, ...rest: any[]) => R; type FunctionRecord = { [K in keyof A]: Function; }; export interface SingleSketch { readonly name: string; readonly configFields: FieldProcessor[]; readonly sketch: (spec: S) => SketchSpec; } export interface SingleSketcherSpec, E extends FunctionRecord = {}> { name: string; factory: UiSketcher.SingleSketchFactory; configFields: FieldProcessor[]; apis?: Record>; extraApis?: E; } export interface SingleSketcherRawDetail, E extends FunctionRecord = {}> { name: string; factory: UiSketcher.SingleSketchFactory; configFields: FieldProcessor[]; apis: Record>; extraApis: E; } export interface CompositeSketchSpec extends BaseSketchSpec { } export interface CompositeSketchDetail extends BaseSketchDetail { parts: Record; partUids: Record; } export interface CompositeSketch { readonly name: string; readonly configFields: FieldProcessor[]; readonly partFields: PartTypeAdt[]; readonly sketch: (spec: S) => SketchSpec; readonly parts: AlloyParts.GeneratedParts; } export interface CompositeSketcherSpec, E extends FunctionRecord = {}> { name: string; factory: UiSketcher.CompositeSketchFactory; configFields: FieldProcessor[]; partFields: PartTypeAdt[]; apis?: Record>; extraApis?: E; } export interface CompositeSketcherRawDetail, E extends FunctionRecord = {}> { name: string; factory: UiSketcher.CompositeSketchFactory; configFields: FieldProcessor[]; partFields: PartTypeAdt[]; apis: Record>; extraApis: E; } export declare const isSketchSpec: (spec: AlloySpec) => spec is SketchSpec; declare const single: , E extends FunctionRecord = {}>(rawConfig: SingleSketcherSpec) => SingleSketch & A & E; declare const composite: , E extends FunctionRecord = {}>(rawConfig: CompositeSketcherSpec) => CompositeSketch & A & E; export { single, composite }; //# sourceMappingURL=Sketcher.d.ts.map