import type * as Duration from "effect/Duration";
import * as Effect from "effect/Effect";
import * as Request from "effect/Request";
import * as RequestResolver from "effect/RequestResolver";
import type * as Schema from "effect/Schema";
import * as Scope from "effect/Scope";
import * as Persistence from "./Persistence.js";
/**
* @since 1.0.0
* @category combinators
*/
export declare const dataLoader: ((options: {
readonly window: Duration.DurationInput;
readonly maxBatchSize?: number;
}) => >(self: RequestResolver.RequestResolver) => Effect.Effect, never, Scope.Scope>) & (>(self: RequestResolver.RequestResolver, options: {
readonly window: Duration.DurationInput;
readonly maxBatchSize?: number;
}) => Effect.Effect, never, Scope.Scope>);
/**
* @since 1.0.0
* @category model
*/
export interface PersistedRequest extends Request.Request, Schema.WithResult {
}
/**
* @since 1.0.0
* @category model
*/
export declare namespace PersistedRequest {
/**
* @since 1.0.0
* @category model
*/
type Any = PersistedRequest | PersistedRequest;
}
/**
* @since 1.0.0
* @category combinators
*/
export declare const persisted: {
/**
* @since 1.0.0
* @category combinators
*/
(options: {
readonly storeId: string;
readonly timeToLive: (...args: Persistence.ResultPersistence.TimeToLiveArgs) => Duration.DurationInput;
}): (self: RequestResolver.RequestResolver) => Effect.Effect>, never, Persistence.ResultPersistence | Scope.Scope>;
/**
* @since 1.0.0
* @category combinators
*/
(self: RequestResolver.RequestResolver, options: {
readonly storeId: string;
readonly timeToLive: (...args: Persistence.ResultPersistence.TimeToLiveArgs) => Duration.DurationInput;
}): Effect.Effect>, never, Persistence.ResultPersistence | Scope.Scope>;
};
//# sourceMappingURL=RequestResolver.d.ts.map