import { type ProjectEntry } from "./authority.js";
/** The harness whose shell this is, when an agent runs the command. */
export declare function agentShell(env?: NodeJS.ProcessEnv): string | undefined;
export interface OwnerTerminal {
    env: NodeJS.ProcessEnv;
    interactive: boolean;
    ask: (question: string) => Promise<string>;
}
/** Changes are the owner's: refused in an agent's shell or without a
 * terminal, and made only after the owner types the project name. */
export declare function ownerConfirms(change: string, project: string, terminal: OwnerTerminal): Promise<void>;
/** The entry `set` saves: the current one with the flags applied. */
export declare function mergedEntry(current: ProjectEntry | undefined, values: {
    default?: string;
    go?: string;
    ask?: string;
    "max-permission-mode"?: string;
    note?: string;
}): ProjectEntry;
export declare function runAuthority(args: string[], terminal?: OwnerTerminal): Promise<number>;
