type DevtoolsOptions = { maxAge?: number; name?: string; postTimelineUpdate?: () => void; preAction?: () => void; logTrace?: boolean; remote?: boolean; }; type DevtoolsSubscriber = (message: { type: string; payload: unknown; state: string; }) => void; type DevtoolsConnection = { send(data: Record, state: Record): void; init(state: Record): void; unsubscribe(): void; subscribe(cb: DevtoolsSubscriber): () => void; }; type ReduxDevtools = { connect(options?: DevtoolsOptions): DevtoolsConnection; }; /** * Type definition for DevTools instance */ type IDevTools = { registerAction(type: string, payload: unknown, stateChanges?: Record | null): void; initState(initialState?: Record): void; clearState(keysToPreserve?: string[]): void; }; export type { DevtoolsOptions, DevtoolsSubscriber, DevtoolsConnection, ReduxDevtools, IDevTools };