import { Sampler } from "./Sampler";
import { Texture, type TextureColorSpace, type TextureDimension } from "./Texture";
export interface TextureBindingDescriptor {
    readonly name: string;
    readonly texture?: Texture | null;
    readonly sampler?: Sampler;
    readonly required?: boolean;
    readonly ready?: boolean;
    readonly expectedColorSpace?: TextureColorSpace;
    readonly expectedDimension?: TextureDimension;
    readonly transform?: TextureTransformDescriptor;
}
export interface TextureTransformDescriptor {
    readonly offset?: readonly [number, number];
    readonly scale?: readonly [number, number];
    readonly rotation?: number;
}
export interface TextureBindingValidation {
    readonly ok: boolean;
    readonly diagnostics: readonly string[];
    readonly warnings: readonly string[];
}
export declare class TextureBinding {
    readonly name: string;
    readonly texture: Texture | null;
    readonly sampler: Sampler;
    readonly required: boolean;
    readonly ready: boolean;
    readonly expectedColorSpace?: TextureColorSpace;
    readonly expectedDimension?: TextureDimension;
    readonly offset: readonly [number, number];
    readonly scale: readonly [number, number];
    readonly rotation: number;
    constructor(descriptor: TextureBindingDescriptor);
    validate(): TextureBindingValidation;
    transformUV(uv: readonly [number, number]): readonly [number, number];
}
//# sourceMappingURL=TextureBinding.d.ts.map