import '../../../../../assert/js/assert.js';
import '../../../../../globals.js';
import { WGSLExpressionBool, WGSLExpressionI32, WGSLExpressionT, WGSLExpressionU32, WGSLStatements, WGSLVariableName, WorkgroupSizable } from '../../../imports.js';
export type mergeWGSLOptions = {
    lengthA: WGSLExpressionU32;
    lengthB: WGSLExpressionU32;
    compare: (indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionI32;
    greaterThan?: ((indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionBool) | null;
    lessThanOrEqual?: ((indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionBool) | null;
    workgroupA: WGSLVariableName;
    workgroupB: WGSLVariableName;
    loadFromA: (indexA: WGSLExpressionU32) => WGSLExpressionT;
    loadFromB: (indexB: WGSLExpressionU32) => WGSLExpressionT;
    storeOutput: (indexOutput: WGSLExpressionU32, value: WGSLExpressionT) => WGSLStatements;
    blockOutputSize: number;
    sharedMemorySize: number;
    atomicConsumed?: boolean;
} & WorkgroupSizable;
export declare const MERGE_DEFAULTS: {
    readonly greaterThan: null;
    readonly lessThanOrEqual: null;
    readonly atomicConsumed: true;
};
declare const mergeWGSL: (providedOptions: mergeWGSLOptions) => WGSLStatements;
export default mergeWGSL;
//# sourceMappingURL=mergeWGSL.d.ts.map