import '../../../../../globals.js';
import { BinaryOp, GlobalIndexable, loadMultipleWGSLOptions, LocalIndexable, OptionalLengthExpressionable, RakedSizable, scanRakedWGSLOptions, WGSLStatements, WGSLVariableName, WorkgroupIndexable } from '../../../imports.js';
type SelfOptions<T> = {
    input: WGSLVariableName;
    output: WGSLVariableName;
    scratch: WGSLVariableName;
    binaryOp: BinaryOp<T>;
    exclusive?: boolean;
    getAddedValue?: ((varName: WGSLVariableName) => WGSLStatements) | null;
};
export type scanComprehensiveWGSLOptions<T> = SelfOptions<T> & RakedSizable & OptionalLengthExpressionable & GlobalIndexable & WorkgroupIndexable & LocalIndexable & Pick<scanRakedWGSLOptions<T>, 'storeReduction' | 'stripeReducedOutput' | 'addedValueNeedsWorkgroupBarrier'> & Pick<loadMultipleWGSLOptions<T>, 'factorOutSubexpressions' | 'inputOrder' | 'inputAccessOrder'>;
export declare const SCAN_COMPREHENSIVE_DEFAULTS: {
    readonly exclusive: false;
    readonly getAddedValue: null;
};
declare const scanComprehensiveWGSL: <T>(providedOptions: scanComprehensiveWGSLOptions<T>) => WGSLStatements;
export default scanComprehensiveWGSL;
//# sourceMappingURL=scanComprehensiveWGSL.d.ts.map