import { type IRPCManager } from "../../common/rpc/IRPCManager";
import { type AltVPlayer } from "../../../entities/altv/player/AltVPlayer";
import shared = AltVShared;
import { type IClientRPCList, type IServerRPCList } from "../../../../shared/net/common/rpc/types";
export interface IAltVServerRPC extends shared.ICustomClientServerRpc, IServerRPCList {
}
export interface IAltVClientRPC extends shared.ICustomServerClientRpc, IClientRPCList {
}
export declare class AltVRPCManager implements IRPCManager {
    register<K extends keyof IAltVServerRPC>(rpcName: K, handler: (player: AltVPlayer, ...args: Parameters<IAltVServerRPC[K]>) => ReturnType<IAltVServerRPC[K]>): void;
    unregister<K extends keyof IAltVServerRPC>(rpcName: K): void;
    emitClient<K extends keyof IAltVClientRPC>(player: AltVPlayer, rpcName: K, ...args: Parameters<IAltVClientRPC[K]>): Promise<ReturnType<IAltVClientRPC[K]>>;
}
