import '../../../../../assert/js/assert.js';
import '../../../../../globals.js';
import { BufferArraySlot, DirectModule, mainScanWGSLOptions, PipelineBlueprintOptions } from '../../../imports.js';
export type MainScanModuleOptions<T> = {
    input?: BufferArraySlot<T> | null;
    output?: BufferArraySlot<T> | null;
    data?: BufferArraySlot<T> | null;
    reduction?: BufferArraySlot<T> | null;
    scannedReduction?: BufferArraySlot<T> | null;
    scannedDoubleReduction?: BufferArraySlot<T> | null;
} & mainScanWGSLOptions<T> & PipelineBlueprintOptions;
export declare const MAIN_SCAN_MODULE_DEFAULTS: {
    readonly inPlace: false;
    readonly storeReduction: false;
    readonly addScannedReduction: false;
    readonly addScannedDoubleReduction: false;
    readonly areScannedReductionsExclusive: false;
    readonly input: null;
    readonly output: null;
    readonly data: null;
    readonly reduction: null;
    readonly scannedReduction: null;
    readonly scannedDoubleReduction: null;
    readonly getAddedValue: null;
    readonly log: false;
};
export default class MainScanModule<T> extends DirectModule<number> {
    readonly input: BufferArraySlot<T>;
    readonly output: BufferArraySlot<T>;
    readonly reduction: BufferArraySlot<T> | null;
    readonly scannedReduction: BufferArraySlot<T> | null;
    readonly scannedDoubleReduction: BufferArraySlot<T> | null;
    constructor(providedOptions: MainScanModuleOptions<T>);
}
//# sourceMappingURL=MainScanModule.d.ts.map