import type { BaseData } from '../../data/wgslTypes.ts';
import type { Infer } from '../../shared/repr.ts';
import { type TgpuAccessor, type TgpuMutableAccessor, type TgpuSlot } from '../slot/slotTypes.ts';
import type { Configurable } from './rootTypes.ts';
export declare class ConfigurableImpl implements Configurable {
    readonly bindings: [TgpuSlot<unknown>, unknown][];
    constructor(bindings: [TgpuSlot<unknown>, unknown][]);
    with<T extends BaseData>(slot: TgpuSlot<T> | TgpuAccessor<T> | TgpuMutableAccessor<T>, value: TgpuAccessor.In<T> | TgpuMutableAccessor.In<T> | Infer<T>): Configurable;
    pipe(transform: (cfg: Configurable) => Configurable): Configurable;
}
