import type { ArrowFunctionExpression, BlockStatement, FunctionDeclaration, FunctionExpression, Node } from '@babel/types';
export type RegistrarFn = (node: Node, comandoNome: string, handler: Node | undefined, origemFramework: string) => void;
export type CorpoFuncao = FunctionDeclaration | FunctionExpression | ArrowFunctionExpression;
export interface HandlerInfo {
    nome?: string;
    tipo?: 'comando' | 'evento' | 'query';
    parametros?: string[];
    descricao?: string;
    middleware?: boolean;
    path?: string;
    func?: CorpoFuncao;
    bodyBlock?: BlockStatement;
    isAnonymous?: boolean;
    params?: Node[];
    totalParams?: number;
    node?: Node;
}
export interface ComandoRegistro {
    id?: string;
    timestamp: string;
    handler?: HandlerInfo | undefined;
    payload?: unknown;
    comandoNome?: string;
    node?: Node;
    origemFramework?: string;
}
//# sourceMappingURL=handlers.d.ts.map