export interface IRequestContext {
    generation: number;
    isCurrent: () => boolean;
}
/**
 * Runs keyed requests outside Smartstate's per-part action queue.
 * Same-key requests share a promise; different keys run concurrently.
 */
export declare class RequestScheduler {
    private generation;
    private inFlight;
    get currentGeneration(): number;
    invalidate(): number;
    isCurrent(generationArg: number): boolean;
    hasInFlight(keyArg: string): boolean;
    run<T>(keyArg: string, taskArg: (contextArg: IRequestContext) => Promise<T>): Promise<T>;
}
