import { Buffer } from 'node:buffer';
import Command from '../../command.js';
import { KnownServices } from './servicesList.js';
import { type ParcelVal } from './Parcel.js';
export type ServiceCallArg = ServiceCallArgNumber | ServiceCallArgString | ServiceCallArgNull;
export interface ServiceCallArgNumber {
    type: 'i32' | 'i64' | 'f' | 'd' | 'fd' | 'nfd' | 'afd';
    value: number;
}
export interface ServiceCallArgString {
    type: 's16';
    value: string;
}
export interface ServiceCallArgNull {
    type: 'null';
}
export declare class ParcelReader {
    private data;
    private pos;
    constructor(data: Buffer);
    read(): string;
    readType(): ParcelVal;
    readString(): string;
    dump(): string;
}
/**
 * service call SERVICE CODE [i32 N | i64 N | f N | d N | s16 STR | null | fd f | nfd n | afd f ] ...
 */
export default class ServiceCallCommand extends Command<ParcelReader> {
    execute(serviceName: KnownServices | string, code: number | string, args?: Array<ServiceCallArg>): Promise<ParcelReader>;
    private _parse;
}
//# sourceMappingURL=serviceCall.d.ts.map