import { Specification } from "stardust-core"; export declare class LinesGenerator { private _lines; private _currentIndent; private _blocks; constructor(); addNamedBlock(name: string, code: string): void; addLine(code: string): void; indent(): void; unindent(): void; getCode(): string; } export declare class ShaderGenerator extends LinesGenerator { constructor(); addAdditionalCode(code: string): void; addDeclaration(name: string, type: string, modifier?: string): void; addArrayDeclaration(name: string, type: string, count?: number, modifier?: string): void; addUniform(name: string, type: string): void; addAttribute(name: string, type: string): void; addVarying(name: string, type: string): void; addIn(name: string, type: string): void; addOut(name: string, type: string): void; generateExpression(expr: Specification.Expression): string; addStatement(stat: Specification.Statement): void; addStatements(stat: Specification.Statement[]): void; addEmitStatement(s: Specification.StatementEmit): void; } export declare class ProgramGenerator { _spec: Specification.Mark; _shader: Specification.Shader; _asUniform: (name: string) => boolean; _names: { [name: string]: boolean; }; constructor(spec: Specification.Mark, shader: Specification.Shader, asUniform: (name: string) => boolean); getUnusedName(hint: string): string; fragmentPassthru(name: string): boolean; }