import { PageSettings, RPCActionBody, RPCActionType, StatRpc, StatRpcResultSelectDTO, TableRpcResultInsertDTO, TableRpcResultSelectDTO, TableRpcResultSelectSingleDTO, TableRpcResultUpdateDTO, TableSpec } from '@kottster/common';
type ActionResults = {
    'custom': any;
    'page_settings': PageSettings;
    'table_spec': TableSpec;
    'table_select': TableRpcResultSelectDTO;
    'table_selectOne': TableRpcResultSelectSingleDTO;
    'table_insert': TableRpcResultInsertDTO;
    'table_update': TableRpcResultUpdateDTO;
    'table_delete': null;
    'stat_spec': {
        statRpc: StatRpc;
    };
    'stat_select': StatRpcResultSelectDTO;
};
type RPCAction = {
    [K in RPCActionType]: {
        action: K;
        input: RPCActionBody<K>;
        result: K extends keyof ActionResults ? ActionResults[K] : never;
    };
}[RPCActionType];
/**
 * Execute an RPC call
 * @param action Action to execute
 * @param input Input data for the action
 * @returns Result of the action
 */
export declare function executeRpc<A extends RPCActionType>(action: A, input: RPCActionBody<A>['input']): Promise<Extract<RPCAction, {
    action: A;
}>['result']>;
export {};
