import { Api, RouteOptions } from './Api';
import { FetchOptions, Gateway } from '../types/Gateway';
import { Uri } from '../types/Uri';
import { PageList } from '../types/PageList';
import { Json } from '../types/Json';
import { Optional } from '../types/Types';
import { RequestOptions } from '../http/RequestOptions';
export declare class ApiGateway extends Gateway<RouteOptions> {
    readonly api: Api;
    constructor(api?: Api);
    get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>>;
    getOne(uri: Uri, options?: RouteOptions): Promise<Optional<Json>>;
    post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json>;
    postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>>;
    patch(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json>;
    put(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json>;
    delete(uri: Uri, options?: RouteOptions): Promise<boolean>;
}
