import { Route } from '../core/Route';
import { type ObjectLiteral } from '../types';
export interface EndpointRequestInit extends RequestInit {
    timeout?: number;
}
export declare class Endpoint<TParams extends ObjectLiteral | undefined = undefined, TRequestBody extends ObjectLiteral | undefined = undefined, TResponse = any> extends Route<TParams> {
    request(routeParams?: TParams, requestInit?: EndpointRequestInit, bodyData?: TRequestBody): Promise<Response>;
    fetch<UResponse = TResponse>(routeParams?: TParams, requestInit?: EndpointRequestInit, bodyData?: TRequestBody): Promise<UResponse>;
    post<UResponse = TResponse>(routeParams?: TParams, requestInit?: EndpointRequestInit, bodyData?: TRequestBody): Promise<UResponse>;
    put<UResponse = TResponse>(routeParams?: TParams, requestInit?: EndpointRequestInit, bodyData?: TRequestBody): Promise<UResponse>;
    delete<UResponse = TResponse>(routeParams?: TParams, requestInit?: EndpointRequestInit, bodyData?: TRequestBody): Promise<UResponse>;
}
