/// /// import { Comment } from './comment'; import { Output } from './output'; import { Value } from './value'; import { Declaration } from './decl'; type Content = Comment | Declaration | Value; type Header = Comment; export interface ProgramOptions { rootDirectory: string; constructFileSuffix: string; constructHeaders?: Header[]; specFileSuffix: string; language: 'typescript' | 'javascript'; } export declare class Program { #private; constructor(options: ProgramOptions); get paths(): string[]; generatedConstructFile(path: string): GeneratedFile; generatedSupportFile(path: string): GeneratedFile; staticSpecFile(path: string, content: string | Buffer): StaticAuxiliaryFile; staticStyleFile(path: string, content: string | Buffer): StaticAuxiliaryFile; staticSupportFile(path: string, content: string | Buffer): StaticAuxiliaryFile; realize(): Promise; } export declare abstract class ProgramFile { readonly path: string; constructor(path: string); get dirname(): string; get basename(): string; relativePath(to: ProgramFile): string; } export interface ImportOptions { relativeTo?: string; relativeToSelf?: boolean; alias?: string; } export interface NamedImport { identifier: string; alias?: string; } export declare class GeneratedFile extends ProgramFile { #private; namedImport(identifier: string, from: string, options?: ImportOptions): void; plainImport(from: string, options?: ImportOptions): void; header(header: Header): void; section(content: Content): void; render(output: Output): void; } export declare class StaticAuxiliaryFile extends ProgramFile { readonly content: string | Buffer; constructor(path: string, content: string | Buffer); } export {};