import { TextureAllocation } from './TextureAllocation';
import { PolyScene } from '../../../../scene/PolyScene';
import { CoreGraphNodeId } from '../../../../../core/graph/CoreGraph';
export interface TextureVariableData {
    name: string;
    size: number;
    nodes: string[];
}
export declare class TextureVariable {
    private _name;
    private _size;
    private _allocation;
    private _position;
    private _readonly;
    private _graphNodeIds;
    constructor(_name: string, _size: number);
    merge(variable: TextureVariable): void;
    setReadonly(state: boolean): void;
    readonly(): boolean;
    setAllocation(allocation: TextureAllocation): void;
    allocation(): TextureAllocation | undefined;
    graphNodeIds(): Set<number> | undefined;
    addGraphNodeId(id: CoreGraphNodeId): void;
    name(): string;
    size(): number;
    setPosition(position: number): void;
    position(): number;
    component(): string;
    static fromJSON(data: TextureVariableData): TextureVariable;
    toJSON(scene: PolyScene): TextureVariableData;
}
