import { PageSettings, RPCActionBody, RPCActionType, TablePageResultInsertDTO, TablePageResultSelectDTO, TablePageResultSelectSingleDTO, TablePageResultUpdateDTO } from '@kottster/common';
type ActionResults = {
    'custom': any;
    'page_settings': PageSettings;
    'table_select': TablePageResultSelectDTO;
    'table_selectOne': TablePageResultSelectSingleDTO;
    'table_insert': TablePageResultInsertDTO;
    'table_update': TablePageResultUpdateDTO;
    'table_delete': null;
};
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 {};
