import type { PluginState } from './types.ts'; /** Provider-scoped state directory. Must call initStateDir() before using state functions. */ export declare let STATE_DIR: string; /** * Initialize the state directory for a specific provider. * Must be called once at startup before any state operations. * Runs one-time migration from old flat layout if needed. */ export declare function initStateDir(provider: string): Promise; export declare function loadState(): Promise; export declare function saveState(state: PluginState): Promise; export declare function getPluginState(state: PluginState, pluginName: string): Record | null; export declare function setPluginState(state: PluginState, pluginName: string, pluginState: Record | undefined): PluginState; /** * Atomic read-modify-write for plugin state. * Acquires file lock, loads state, calls transform, saves result, releases lock. */ export declare function withState(fn: (state: PluginState) => Promise | PluginState): Promise; export interface TickerCache { [pluginName: string]: { text: string; gatheredAt: string; }; } export declare function loadTickerCache(): Promise; export declare function saveTickerCache(cache: TickerCache): Promise; export declare function writeTickerPid(pid: number): Promise; export declare function readTickerPid(): Promise; export declare function clearTickerPid(): Promise; export declare function loadChannelSeen(): Promise>; export declare function saveChannelSeen(seen: Record): Promise; export declare function clearChannelSeen(): Promise;