import { BroadcastDriver } from 'laravel-echo'; import { Broadcaster } from 'laravel-echo'; import { ConnectionStatus } from 'laravel-echo'; import { default as default_2 } from 'laravel-echo'; import { DependencyList } from 'react'; import { EchoOptions } from 'laravel-echo'; declare type BroadcastNotification = TPayload & { id: string; type: string; }; declare type Channel = { name: string; id: string; visibility: "private" | "public" | "presence"; }; declare type ChannelReturnType = V extends "presence" ? Broadcaster[T]["presence"] : V extends "private" ? Broadcaster[T]["private"] : Broadcaster[T]["public"]; /** * Configure the Echo instance with sensible defaults. * * @link https://laravel.com/docs/broadcasting#client-side-installation */ export declare const configureEcho: (config: EchoOptions) => void; export { ConnectionStatus } export declare const echo: () => default_2; export declare const echoIsConfigured: () => boolean; /** * Type alias for event names - helps with autocomplete suggestions */ declare type EventName = keyof Events & string; /** * Type utility to infer payload type from event name */ declare type InferEventPayload = TEvent extends keyof Events ? Events[TEvent] : unknown; declare type ModelEvent = "Retrieved" | "Creating" | "Created" | "Updating" | "Updated" | "Saving" | "Saved" | "Deleting" | "Deleted" | "Trashed" | "ForceDeleting" | "ForceDeleted" | "Restoring" | "Restored" | "Replicating"; declare type ModelEvents = `.${ModelName}${ModelEvent}` | `${ModelName}${ModelEvent}`; declare type ModelName = T extends `${infer _}.${infer U}` ? ModelName : T; declare type ModelPayload = { model: T; connection: string | null; queue: string | null; afterCommit: boolean; }; export declare const useConnectionStatus: () => ConnectionStatus; export declare function useEcho(channelName: string, event: TEvent, callback: (payload: InferEventPayload) => void, dependencies?: DependencyList, visibility?: TVisibility): { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => ChannelReturnType | null; }; export declare function useEcho(channelName: string, event: TEvent[], callback: (payload: InferEventPayload) => void, dependencies?: DependencyList, visibility?: TVisibility): { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => ChannelReturnType | null; }; export declare function useEcho(channelName: string, event: string | string[], callback: (payload: TPayload) => void, dependencies?: DependencyList, visibility?: TVisibility): { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => ChannelReturnType | null; }; export declare const useEchoModel: (model: TModel, identifier: string | number, event?: ModelEvents | ModelEvents[], callback?: (payload: ModelPayload) => void, dependencies?: DependencyList) => { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => Broadcaster[TDriver]["private"] | null; }; export declare const useEchoNotification: (channelName: string, callback?: (payload: BroadcastNotification) => void, event?: string | string[], dependencies?: DependencyList) => { /** * Stop listening for notification events */ stopListening: () => void; /** * Listen for notification events */ listen: () => void; leaveChannel: (leaveAll?: boolean) => void; leave: () => void; channel: () => Broadcaster[TDriver]["private"] | null; }; export declare const useEchoPresence: (channelName: string, event?: string | string[], callback?: (payload: TPayload) => void, dependencies?: DependencyList) => { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => Broadcaster[TDriver]["presence"] | null; }; export declare const useEchoPublic: (channelName: string, event?: string | string[], callback?: (payload: TPayload) => void, dependencies?: DependencyList) => { leaveChannel: (leaveAll?: boolean) => void; leave: () => void; stopListening: () => void; listen: () => void; channel: () => Broadcaster[TDriver]["public"] | null; }; export declare const useSocketId: () => string | undefined; export { }