declare type UnknownBody = Record<string, unknown>;
declare type UnknownQuery = Record<string, unknown>;
export interface ActionPayload<Q extends UnknownQuery, B extends UnknownBody> {
    readonly query?: Q;
    readonly body?: B;
}
export declare type RestMethod = "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
export declare type UnknownActionPayload = ActionPayload<UnknownQuery, UnknownBody>;
export declare type EndpointOptions<P extends UnknownActionPayload> = {
    path?: string;
    payload?: P;
};
export interface Endpoint {
    runAction<P extends UnknownActionPayload>(method: RestMethod, options?: EndpointOptions<P>): Promise<unknown>;
}
export {};
