import { type StructureProcessor, type FieldProcessor } from '@ephox/boulder'; import type { AlloyComponent } from '../../api/component/ComponentApi'; import * as AlloyEvents from '../../api/events/AlloyEvents'; import type { CustomEvent } from '../../events/SimulatedEvent'; import type { BehaviourState, BehaviourStateInitialiser } from './BehaviourState'; import type { AlloyBehaviour, BehaviourActiveSpec, BehaviourApisRecord, BehaviourConfigDetail, BehaviourConfigSpec, BehaviourExtraRecord } from './BehaviourTypes'; export type WrappedApiFunc any> = T extends (comp: AlloyComponent, config: any, state: any, ...args: infer P) => infer R ? (comp: AlloyComponent, ...args: P) => R : never; type Executor = (component: AlloyComponent, bconfig: D, bState: S) => void; export type AlloyBehaviourWithApis, E extends BehaviourExtraRecord> = AlloyBehaviour & { [K in keyof A]: WrappedApiFunc; } & E; declare const executeEvent: (bConfig: C, bState: S, executor: Executor) => AlloyEvents.AlloyEventKeyAndHandler; declare const loadEvent: (bConfig: C, bState: S, f: Executor) => AlloyEvents.AlloyEventKeyAndHandler; declare const create: , E extends BehaviourExtraRecord>(schema: FieldProcessor[], name: string, active: BehaviourActiveSpec, apis: A, extra: E, state: BehaviourStateInitialiser) => AlloyBehaviourWithApis; declare const createModes: , E extends BehaviourExtraRecord>(modes: StructureProcessor, name: string, active: BehaviourActiveSpec, apis: A, extra: E, state: BehaviourStateInitialiser) => AlloyBehaviourWithApis; export { executeEvent, loadEvent, create, createModes }; //# sourceMappingURL=Behaviour.d.ts.map