import { StampedEvent, SignedEvent } from "@welshman/util"; import { Socket, SocketPolicy } from "./socket.js"; /** * Sends a ping message every so often to ensure connection health * @param socket - a Socket object * @return a cleanup function */ export declare const socketPolicyPing: (socket: Socket) => () => void; /** * Handles auth-related message management: * - Defers sending messages when a challenge is pending * - Re-enqueues event/req messages once if rejected due to auth-required * @param socket - a Socket object * @return a cleanup function */ export declare const socketPolicyAuthBuffer: (socket: Socket) => () => void; /** * Auto-connects a closed socket when a message is sent unless there was a recent error * @param socket - a Socket object * @return a cleanup function */ export declare const socketPolicyConnectOnSend: (socket: Socket) => () => void; /** * Auto-closes inactive sockets, and re-opens sockets with pending messages * @param socket - a Socket object * @return a cleanup function */ export declare const socketPolicyCloseInactive: (socket: Socket) => () => void; export type SocketPolicyAuthOptions = { sign: (event: StampedEvent) => Promise; shouldAuth?: (socket: Socket) => boolean; }; /** * Factory function for a policy which may authenticate the socket * @param options - SocketPolicyAuthOptions object * @return a socket policy */ export declare const makeSocketPolicyAuth: (options: SocketPolicyAuthOptions) => (socket: Socket) => () => void; export declare const defaultSocketPolicies: SocketPolicy[]; //# sourceMappingURL=policy.d.ts.map