import { Endpoint } from "../types.js";
import { WireFormat } from "../wireFormat.js";
import { ApiError } from "./error.js";
import { RouteDefinitionExtra } from "./request.js";
export type RawBody = {
    type: WireFormat.json;
    value: unknown;
} | {
    type: WireFormat.ssz;
    value: Uint8Array;
} | {
    type?: never;
    value?: never;
};
export declare class ApiResponse<E extends Endpoint> extends Response {
    private definition;
    private _wireFormat?;
    private _rawBody?;
    private _errorBody?;
    private _meta?;
    private _value?;
    constructor(definition: RouteDefinitionExtra<E>, body?: BodyInit | null, init?: ResponseInit);
    wireFormat(): WireFormat | null;
    rawBody(): Promise<RawBody>;
    meta(): E["meta"];
    value(): E["return"];
    ssz(): Uint8Array;
    json(): Awaited<ReturnType<Response["json"]>>;
    assertOk(): void;
    error(): ApiError | null;
    errorBody(): Promise<string>;
    private resolvedRawBody;
    private resolvedErrorBody;
    private getErrorMessage;
}
//# sourceMappingURL=response.d.ts.map