import type { ByteBuffer } from './structures'; export declare type Callback = (err: number) => void; export declare type CallbackWithResponse = (err: number, response: string) => void; declare type Argument = Record | Array | Date | Uint8Array | SerializedArgument; declare type SerializedArgument = string | number | Callback | CallbackWithResponse | ArrayBuffer | typeof ByteBuffer; export declare type SerializedOptions = Required<{ [Property in keyof Type]: Type[Property] extends string ? string : Type[Property] extends number ? number : Type[Property] extends Record ? string : Type[Property] extends Array ? string : Type[Property] extends Array | undefined ? string : Type[Property] extends Record | undefined ? string : Type[Property] extends Date ? number : Type[Property] extends Date | undefined ? number : Type[Property] extends string | undefined ? string : Type[Property] extends number | undefined ? number : Type[Property] extends Callback ? Callback : Type[Property] extends CallbackWithResponse ? CallbackWithResponse : Type[Property] extends Uint8Array ? typeof ByteBuffer : unknown; }>; declare const serializeArguments: = Record>(args: T) => Required<{ [Property in keyof T]: T[Property] extends string ? string : T[Property] extends number ? number : T[Property] extends Record ? string : T[Property] extends unknown[] ? string : T[Property] extends unknown[] | undefined ? string : T[Property] extends Record | undefined ? string : T[Property] extends Date ? number : T[Property] extends Date | undefined ? number : T[Property] extends string | undefined ? string : T[Property] extends number | undefined ? number : T[Property] extends Callback ? Callback : T[Property] extends CallbackWithResponse ? CallbackWithResponse : T[Property] extends Uint8Array ? import("ref-struct-di").StructType<{ len: import("ref-napi").Type; data: import("ref-napi").Type>; }> : unknown; }>; export { serializeArguments };