import '../../../../../assert/js/assert.js';
import '../../../../../globals.js';
/**
 * Co-rank function, that determines the indices into two arrays that would be at a given rank if they were sorted
 * together (with a binary search).
 *
 * It will return the index into the first array (A), and the index into the second array (B) would just be
 * k - result.
 *
 * See ByteEncoder.getCorank for more information.
 *
 * Somewhat adapted from "Programming Massively Parallel Processors" by Hwu, Kirk and Hajj
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import { WGSLExpressionBool, WGSLExpressionI32, WGSLExpressionU32, WGSLStatements, WGSLVariableName } from '../../../imports.js';
export type getCorankWGSLOptions = {
    value: WGSLVariableName;
    outputIndex: WGSLExpressionU32;
    lengthA: WGSLExpressionU32;
    lengthB: WGSLExpressionU32;
    compare: ((indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionI32) | null;
    greaterThan?: ((indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionBool) | null;
    lessThanOrEqual?: ((indexA: WGSLExpressionU32, indexB: WGSLExpressionU32) => WGSLExpressionBool) | null;
};
export declare const GET_CORANK_DEFAULTS: {
    readonly greaterThan: null;
    readonly lessThanOrEqual: null;
};
declare const getCorankWGSL: (providedOptions: getCorankWGSLOptions) => WGSLStatements;
export default getCorankWGSL;
//# sourceMappingURL=getCorankWGSL.d.ts.map