import type { HttpContractConfig } from "../contracts/index.js";
import type { HttpRequestLike, HttpResponseLike, MaybePromise } from "./http.js";
export declare const responseFinalizerHook: unique symbol;
export type ResponseFinalizerResponseOwner = "route" | "framework" | "transport";
export type ResponseFinalizerValidationState = "validated" | "disabled" | "not-applicable";
export type ResponseFinalizerHookArgs<Ctx> = {
    req: HttpRequestLike;
    ctx?: Ctx;
    contract: HttpContractConfig;
    path?: unknown;
    query?: unknown;
    headers?: unknown;
    body?: unknown;
    response: HttpResponseLike;
    error?: unknown;
    native?: boolean;
    owner: ResponseFinalizerResponseOwner;
    responseValidation: ResponseFinalizerValidationState;
};
export type ResponseFinalizerHook<Ctx> = (args: ResponseFinalizerHookArgs<Ctx>) => MaybePromise<void>;
export type ResponseFinalizerServerHook<Ctx> = {
    [responseFinalizerHook]?: ResponseFinalizerHook<Ctx>;
};
export declare function getResponseFinalizerHook<Ctx>(hook: unknown): ResponseFinalizerHook<Ctx> | undefined;
//# sourceMappingURL=internal-hooks.d.ts.map