import { type InstanceRefObject } from "@todesktop/client-util";
export declare const invoke: <NS = import("@todesktop/client-util").NamespacesStaticV1 & import("@todesktop/client-util").NamespacesInstancesV1, NSName extends keyof NS = keyof NS, MethodName extends keyof NS[NSName] = keyof NS[NSName], Func = NS[NSName][MethodName], InstanceRef = void | InstanceRefObject, EO = void | import("@todesktop/client-util").EventOptions>(command: Func extends import("@todesktop/client-util").MethodFunc ? import("@todesktop/client-util").InvokeMethodCommand<NSName, MethodName, Func, InstanceRef, EO> : import("@todesktop/client-util").InvokePropCommand<NSName, MethodName, InstanceRef>) => Promise<Func extends import("@todesktop/client-util").MethodFunc ? import("@todesktop/client-util").ChangeInstancesToInstanceRefs<ReturnType<Func>> : Func>, construct: <NS_1 = import("@todesktop/client-util").NamespacesStaticV1, NSName_1 extends keyof NS_1 = keyof NS_1, Func_1 = NS_1[NSName_1]>(command: Func_1 extends import("@todesktop/client-util").ConstructorFunc ? import("@todesktop/client-util").InvokeConstructorCommand<NSName_1, Func_1> : never) => Promise<InstanceRefObject>, releaseMemory: (memoryRefs: string[]) => Promise<void>;
/**
 * @internal
 * @privateRemarks
 * Should not be hardcoded.
 */
export default invoke;
export declare type Ref = InstanceRefObject;
export interface RefOptions {
    ref?: Ref;
}
