import * as Logger from "bunyan";
export interface ICodeImport {
    name: string;
    path: string;
}
export interface IInterfaceProp {
    name: string;
    type: string;
    optional: boolean;
}
export interface ICode {
    imports: ICodeImport[];
    functions: string[];
    interfaceSignatures: string[];
    interfaces: string[];
}
export interface IOptions {
    className?: string;
    notificationImport?: string;
    additionalImports?: string[];
    functionName?: (typeName: string, notificationType: string) => string;
}
export declare class ApiReflector {
    private logger;
    private sourcePaths;
    private program;
    private checker;
    private collected;
    constructor(logger: Logger, sourcePaths: string[]);
    private getNotificationInheritance;
    private getNotificationInheritanceRecursive;
    private processClass;
    private getNotificationType;
    writeNotifications(writeTo: string, options?: IOptions): ICode;
}
