import '../../../../../globals.js';
import { BufferSlot, CompositeModule, LinearEdge, MainTwoPassCoarseModule, MainTwoPassCoarseModuleOptions, MainTwoPassFineModule, MainTwoPassFineModuleOptions, MainTwoPassInitializeAddressesModule, PipelineBlueprintOptions, TextureViewSlot, TwoPassCoarseRenderableFace, TwoPassConfig, WGSLExpressionU32 } from '../../../imports.js';
type SelfOptions = {
    config: BufferSlot<TwoPassConfig>;
    coarseRenderableFaces: BufferSlot<TwoPassCoarseRenderableFace[]>;
    coarseEdges: BufferSlot<LinearEdge[]>;
    renderProgramInstructions: BufferSlot<number[]>;
    output: TextureViewSlot;
    storageFormat: GPUTextureFormat;
    numCoarseRenderableFaces: WGSLExpressionU32;
    maxFineFaces?: number;
    maxFineEdges?: number;
    maxBins?: number;
};
type ParentOptions = {
    mainTwoPassCoarseModuleOptions?: Partial<MainTwoPassCoarseModuleOptions>;
    mainTwoPassFineModuleOptions?: Partial<MainTwoPassFineModuleOptions>;
    mainTwoPassInitializeAddressesModule?: Partial<MainTwoPassInitializeAddressesModule>;
} & PipelineBlueprintOptions;
export type TwoPassModuleOptions = SelfOptions & ParentOptions;
export declare const TWO_PASS_MODULE_DEFAULTS: {
    readonly mainTwoPassCoarseModuleOptions: {};
    readonly mainTwoPassFineModuleOptions: {};
    readonly mainTwoPassInitializeAddressesModule: {};
    readonly maxFineFaces: number;
    readonly maxFineEdges: number;
    readonly maxBins: number;
};
export type TwoPassRunSize = {
    numBins: number;
    numCoarseRenderableFaces: number;
};
export default class TwoPassModule extends CompositeModule<TwoPassRunSize> {
    readonly config: BufferSlot<TwoPassConfig>;
    readonly coarseRenderableFaces: BufferSlot<TwoPassCoarseRenderableFace[]>;
    readonly coarseEdges: BufferSlot<LinearEdge[]>;
    readonly renderProgramInstructions: BufferSlot<number[]>;
    readonly output: TextureViewSlot;
    readonly initializeAddressesModule: MainTwoPassInitializeAddressesModule;
    readonly coarseModule: MainTwoPassCoarseModule;
    readonly fineModule: MainTwoPassFineModule;
    constructor(providedOptions: TwoPassModuleOptions);
}
export {};
//# sourceMappingURL=TwoPassModule.d.ts.map