import { ShaderName } from '../../../utils/shaders/ShaderName';
import { BaseGLDefinition } from '../../utils/GLDefinition';
import { BaseGlNodeType } from '../../_Base';
export type DefinitionTraverseCallback = (definition: BaseGLDefinition) => void;
export interface AddBodyLinesOptions {
    makeUniq: boolean;
}
export declare class LinesController {
    private _shader_name;
    private _definitionsByNodeId;
    private _bodyLinesByNodeId;
    constructor(_shader_name: ShaderName);
    get shader_name(): ShaderName;
    addDefinitions(node: BaseGlNodeType, definitions: BaseGLDefinition[]): void;
    private _addDefinitionsForNodeId;
    definitions(node: BaseGlNodeType): BaseGLDefinition[] | undefined;
    traverseDefinitions(callback: DefinitionTraverseCallback): void;
    addBodyLines(node: BaseGlNodeType, lines: string[], options?: AddBodyLinesOptions): void;
    private _addBodyLinesForNodeId;
    bodyLines(node: BaseGlNodeType): string[] | undefined;
}
