import { type NamespacesInstancesV1, type NamespacesStaticV1 } from "@todesktop/client-util"; import { type Ref } from "./invoke.js"; declare type KeyOf = Extract; interface Events { [key: string]: (...args: unknown[]) => void; } interface LegacyEvents { [key: string]: string; } export interface ListenerEvent { sender: { id: string; namespace: string; type: string; }; } export declare type NamespaceEvents = { [P in keyof T]: (...args: Parameters) => ReturnType; }; declare type AddEventListenerFn = >(eventName: E, callback: T[E], ...args: RequiredRef extends true ? [{ ref: Ref; preventDefault?: boolean; }] : [{ ref?: Ref; preventDefault?: boolean; }?]) => Promise<() => Promise>; declare type RemoveAllListenersFn = >(eventName: E, ...args: RequiredRef extends true ? [{ ref: Ref; }] : [{ ref?: Ref; }?]) => Promise; declare type NamespaceListenersReturnApi = { removeAllListeners: RemoveAllListenersFn; on: AddEventListenerFn; }; export declare const createOnAndOffNamespaceListeners: (namespace: keyof (NamespacesStaticV1 & NamespacesInstancesV1), compatibleWithVersionsAfter?: string) => NamespaceListenersReturnApi; export declare const createOnAndOffNamespaceListenersWithCompatiblityForLegacyEvents: (legacyMappings: U, namespace: keyof (NamespacesStaticV1 & NamespacesInstancesV1)) => NamespaceListenersReturnApi; export declare const isDev: boolean; export {};