import { Optional, Result } from '@ephox/katamari';
import { AlloyComponent } from '../api/component/ComponentApi';
import { ComponentDetail, SimpleOrSketchSpec, StructDomSchema } from '../api/component/SpecTypes';
import { AlloyEventRecord } from '../api/events/AlloyEvents';
import { DomDefinitionDetail } from '../dom/DomDefinition';
import { DomModification } from '../dom/DomModification';
export interface CustomDetail<A> {
    dom: StructDomSchema;
    components: AlloyComponent[];
    uid: string;
    events: AlloyEventRecord;
    apis: A;
    eventOrder: Record<string, string[]>;
    domModification: Optional<DomModification>;
    originalSpec: SimpleOrSketchSpec;
    'debug.sketcher': string;
}
declare const toInfo: <A>(spec: ComponentDetail) => Result<CustomDetail<A>, any>;
declare const toDefinition: (detail: CustomDetail<any>) => DomDefinitionDetail;
declare const toModification: (detail: CustomDetail<any>) => DomModification;
declare const toApis: <A>(info: CustomDetail<A>) => A;
declare const toEvents: (info: CustomDetail<any>) => AlloyEventRecord;
export { toInfo, toDefinition, toModification, toApis, toEvents };
//# sourceMappingURL=CustomDefinition.d.ts.map