import '../../../../../assert/js/assert.js';
import '../../../../../globals.js';
import { ConcreteType, GlobalIndexable, LocalIndexable, OptionalLengthExpressionable, RakedSizable, WGSLExpressionT, WGSLExpressionU32, WGSLStatements, WGSLString, WGSLVariableName, WorkgroupIndexable } from '../../../imports.js';
export type loadMultipleWGSLOptions<T> = {
    loadExpression?: ((index: WGSLExpressionU32) => WGSLExpressionT) | null;
    loadStatements?: ((varName: WGSLVariableName, index: WGSLExpressionU32) => WGSLStatements) | null;
    storeStatements: (index: WGSLExpressionU32, value: WGSLExpressionT) => WGSLStatements;
    type: ConcreteType<T>;
    outOfRangeValue?: WGSLExpressionT | null;
    inputOrder: 'blocked' | 'striped';
    inputAccessOrder?: 'blocked' | 'striped';
    factorOutSubexpressions?: boolean;
} & RakedSizable & GlobalIndexable & WorkgroupIndexable & LocalIndexable & OptionalLengthExpressionable;
export declare const LOAD_MULTIPLE_DEFAULTS: {
    readonly lengthExpression: null;
    readonly localIndex: WGSLString;
    readonly workgroupIndex: WGSLString;
    readonly globalIndex: WGSLString;
    readonly loadExpression: null;
    readonly loadStatements: null;
    readonly outOfRangeValue: null;
    readonly inputAccessOrder: "striped";
    readonly factorOutSubexpressions: true;
};
declare const loadMultipleWGSL: <T>(providedOptions: loadMultipleWGSLOptions<T>) => WGSLStatements;
export default loadMultipleWGSL;
//# sourceMappingURL=loadMultipleWGSL.d.ts.map