import * as bt from 'babel-types'; export interface SingleImportDeclaration extends bt.Node { type: 'SingleImportDeclaration'; specifier: bt.ImportSpecifier | bt.ImportDefaultSpecifier | bt.ImportNamespaceSpecifier; source: bt.StringLiteral; } export interface SingleVariableDeclaration extends bt.Node { type: 'SingleVariableDeclaration'; declaration: bt.VariableDeclarator; kind: 'var' | 'let' | 'const'; } export declare type DeclarationType = bt.FunctionDeclaration | SingleImportDeclaration | bt.TypeAlias | bt.DeclareFunction | SingleVariableDeclaration | bt.InterfaceDeclaration | bt.DeclareClass; export interface ToStringOptions { commonJsDefaultExport?: boolean; } export declare class Output { readonly imports: Array; readonly declarations: Array; readonly exports: Array; readonly printed: Set; private readonly ctx; constructor(ctx: Context); request(id: bt.Identifier): void; toString(options?: ToStringOptions): string; } export declare class Context { readonly filename: string; readonly src: string; readonly chain: ReadonlyArray; readonly parents: ReadonlyArray; readonly output: Output; readonly declarations: Map>; defaultExport: null | bt.Expression; readonly namedExports: Array; readonly exportNames: Set; constructor(filename: string, src: string, chain?: ReadonlyArray); getError(msg: string, node: bt.Node): Error; declare(id: bt.Identifier, declaration: DeclarationType): void; setDefaultExport(value: bt.Expression): void; addNamedExport(value: bt.ExportSpecifier): void; } export default Context;