/**
 * Trigger state + pack enumeration helpers for CLI.1.
 *
 * Split out of `triggers.ts` (file-size budget). Three concerns:
 *
 *   1. `readDisabledSet` / `writeDisabledSet` — load + atomically rewrite
 *      `~/.opensquid/trigger_state.yaml`. Malformed yaml throws (no silent
 *      fail-open).
 *   2. `enumeratePacks` — walk a packs directory (default
 *      `~/.opensquid/packs/`) and `loadPack` each subdir, skipping
 *      dotfiles + non-dirs.
 *   3. `buildRows` / `resolveTrigger` — flatten `pack.skills[].triggers[]`
 *      into rows + lookup-by-id.
 *
 * Trigger id format (locked): `<pack>:<skill>:<kind>:<index>`.
 *
 * Imports from: node:fs/promises, yaml, packs/loader, runtime/paths,
 *   runtime/types.
 * Imported by: src/setup/cli/triggers.ts.
 */
import type { Pack, Trigger } from '../../runtime/types.js';
export interface TriggerRow {
    id: string;
    pack: string;
    skill: string;
    kind: Trigger['kind'];
    index: number;
    filter: string;
    enabled: boolean;
}
export declare const defaultPacksDir: () => string;
export declare const defaultStatePath: () => string;
export declare function readDisabledSet(statePath: string): Promise<Set<string>>;
export declare function writeDisabledSet(statePath: string, disabled: Set<string>): Promise<void>;
export declare function enumeratePacks(packsDir: string): Promise<Pack[]>;
export declare function buildRows(opts: {
    packsDir?: string;
    statePath?: string;
}): Promise<TriggerRow[]>;
export declare function resolveTrigger(id: string, opts: {
    packsDir?: string;
    statePath?: string;
}): Promise<{
    row: TriggerRow;
    trigger: Trigger;
} | null>;
//# sourceMappingURL=triggers_state.d.ts.map