import type { CommandResult } from './types.js'; export declare const LAW_FILE = "CLAUDE.md"; export declare const LAW_SOURCE = "LAW.md"; export declare const AGENTS_FILE = "AGENTS.md"; export declare const CURSOR_RULES = ".cursor/rules"; /** Written into every generated file: `--write` once left a 1,117-line byte copy of a consumer's law in AGENTS.md and nothing read it (#82). `geonosis doctor --only drift` looks for the marker. */ export declare const SYNC_GATE = "geonosis sync --check"; export type Generated = Record; /** D-054: `AGENTS.md` as a whole copy of the law is a second law once the first changes. `@AGENTS.md` is an import in Claude Code, so a repo that wants a copy declares `law.copy`. */ export declare const lawDeclaration: (cwd: string) => { copy?: boolean; file?: string; maxLines?: number; } | undefined; /** Under D-054 `CLAUDE.md` may be one line importing `LAW.md`; every reader asks this, so no two measure different files. */ export declare const lawFileOf: (cwd: string) => string; /** #77: `--write` wrote AGENTS.md and nine `.cursor/rules/*.mdc` into a repo that does not use Cursor. */ declare const TARGETS: readonly ['cursor']; /** #207: three sentences pointed at it and one spelled a flag this command does not take. */ export declare const AGENTS_MD_DOOR = "geonosis sync --target agents-md --into AGENTS.md"; /** D-054 as amended: AGENTS.md has one generator, the ledger's. Two generators leave whichever ran last. */ export declare const AGENTS_IS_THE_LEDGERS = "geonosis sync: AGENTS.md has one generator and it is not this one \u2014 run `geonosis sync --target agents-md --into AGENTS.md`, which projects the law's rules section, the skills and the scoped rules. This command writes no copy of a law.\n"; export declare const writtenByTheLedger: (text: string) => boolean; export type Target = (typeof TARGETS)[number]; /** `cursor` only where a `.cursor/` directory says the repo uses it. */ export declare const targetsIn: (cwd: string) => Target[]; /** One law, every tool (D-002): Cursor's `.cursor/rules/*.mdc` derive from it; AGENTS.md is the ledger's. */ export declare const generate: (cwd: string, targets?: readonly Target[]) => Generated; export declare const SYNC_USAGE: string; export type SyncInput = { check?: boolean; cwd: string; into?: string; target?: string; targets?: readonly string[]; /** Refused by name before anything is written (#175). */ unknownFlags?: string[]; write?: boolean; }; /** `--target` is the ledger's edges table; handing it over keeps one reader of one table. */ export declare const runSync: (input: SyncInput) => Promise; export {};