export interface DeclarationItem { type: string; name?: string; optional?: boolean; keywords?: string[]; parameters?: DeclarationItem[]; return?: string; extends?: string[]; members?: DeclarationItem[]; } export declare class Declaration { private items; constructor(declarationPath: string); getClass(name: string): any; private getItem(type, name, items); } export declare class VariableInfo { name: string; type: string; optional: boolean; } export declare class MemberInfo extends VariableInfo { keywords: string[]; parameters: VariableInfo[]; getParam(name: string): VariableInfo; } export declare class ControllerInfo { type: any; name: string; className: string; path: string; hasModel: boolean; baseClassName: string; actions: MemberInfo[]; constructor(type: any, declaration: Declaration); getAction(name: string): MemberInfo; } export declare class ModelInfo { type: any; name: string; baseClassName: string; properties: MemberInfo[]; constructor(type: any, declaration: Declaration); }