import { Comment } from './comment'; import { IdentifierValue } from './identifier'; import { Output } from './output'; import { Value } from './value'; export declare abstract class Declaration { abstract render(output: Output): void; } export declare class IdentifierDeclaration extends Declaration { identifier: IdentifierValue; constructor(identifier: IdentifierValue); render(output: Output): void; } export interface VariableDeclarationOptions { mutable?: boolean; } export declare class VariableDeclaration extends Declaration { identifier: IdentifierValue; value: Value; options?: VariableDeclarationOptions; constructor(identifier: IdentifierValue, value: Value, options?: VariableDeclarationOptions); render(output: Output): void; } export interface ExportDeclarationOptions { default?: boolean; } export declare class ExportDeclaration extends Declaration { decl: Declaration; default: boolean; constructor(decl: Declaration, options?: ExportDeclarationOptions); render(output: Output): void; } export declare class LeadingCommentDeclaration extends Declaration { decl: Declaration; comment: Comment; constructor(comment: Comment, decl: Declaration); render(output: Output): void; } export declare class TrailingCommentDeclaration extends Declaration { decl: Declaration; comment: Comment; constructor(comment: Comment, decl: Declaration); render(output: Output): void; }