import type { RuntimeBkndConfig } from "bknd/adapter";
import type { App, MaybePromise } from "../..";
import { type CloudflareContext } from "./config";
declare global {
    namespace Cloudflare {
        interface Env {
        }
    }
}
export type CloudflareEnv = Cloudflare.Env;
export type CloudflareBkndConfig<Env = CloudflareEnv> = RuntimeBkndConfig<Env> & {
    bindings?: (args: Env) => MaybePromise<{
        kv?: KVNamespace;
        db?: D1Database;
    }>;
    d1?: {
        session?: boolean;
        transport?: "header" | "cookie";
        first?: D1SessionConstraint;
    };
    static?: "kv" | "assets";
    key?: string;
    keepAliveSeconds?: number;
    forceHttps?: boolean;
    manifest?: string;
    registerMedia?: boolean | ((env: Env) => void);
};
export declare function createApp<Env extends CloudflareEnv = CloudflareEnv>(config?: CloudflareBkndConfig<Env>, ctx?: Partial<CloudflareContext<Env>>): Promise<App<import("../..").Connection<unknown>, import("../../core/types").PartialRec<import("../..").ModuleConfigs>, import("../../App").AppOptions>>;
export declare const getFresh: typeof createApp;
export declare function serve<Env extends CloudflareEnv = CloudflareEnv>(config?: CloudflareBkndConfig<Env>, serveOptions?: (args: Env) => {
    warm?: boolean;
}): {
    fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response>;
};
