import { Optional } from '@ephox/katamari';
interface Annotation {
    readonly name: string;
    readonly parameters: string[];
}
export declare type FunctionWithAnnotation<T extends Function> = T & {
    toFunctionAnnotation?: () => Annotation;
};
declare const markAsBehaviourApi: <T extends Function>(f: T, apiName: string, apiFunction: Function) => FunctionWithAnnotation<T>;
declare const markAsExtraApi: <T extends Function>(f: T, extraName: string) => FunctionWithAnnotation<T>;
declare const markAsSketchApi: <T extends Function>(f: T, apiFunction: Function) => FunctionWithAnnotation<T>;
declare const getAnnotation: <T extends Function>(f: FunctionWithAnnotation<T>) => Optional<Annotation>;
export { markAsBehaviourApi, markAsExtraApi, markAsSketchApi, getAnnotation };
//# sourceMappingURL=FunctionAnnotator.d.ts.map