/**
 * Execution Context Detection
 *
 * Detects whether the CLI is running inside the agentics-cli development
 * repository (MODE 1: Development) or an end-user project repository
 * (MODE 2: Project). Routes MVP materialization accordingly:
 *
 *   Development mode: Sandbox/ephemeral — no git mutations, output only in ~/.agentics/runs/
 *   Project mode:     Writes files and commits directly on the current branch — no branch switching
 *
 * Detection precedence:
 *   1. AGENTICS_EXECUTION_MODE env var ('development' | 'project')
 *   2. Git remote URL or repo directory name containing "agentics-cli"
 */
export type ExecutionMode = 'development' | 'project';
export interface ExecutionContext {
    readonly mode: ExecutionMode;
    readonly repoRoot: string | null;
    readonly remoteUrl: string | null;
    readonly isGitRepo: boolean;
    readonly isCleanTree: boolean;
    readonly currentBranch: string | null;
}
/**
 * Detect the execution mode based on the current working directory.
 *
 * Returns a full ExecutionContext with mode, repo info, and git state.
 */
export declare function detectExecutionMode(): ExecutionContext;
/**
 * Validate that the working tree is clean. Throws if dirty.
 * Only called in project mode before creating a scenario branch.
 */
export declare function validateCleanWorkingTree(): void;
/**
 * Generate a URL-safe slug from a scenario query string.
 *
 * Takes the first 40 characters, lowercases, replaces non-alphanumeric
 * with hyphens, collapses runs, trims edges, appends YYYYMMDD date.
 */
export declare function generateScenarioSlug(query: string): string;
/**
 * Generate the full branch name for a scenario simulation.
 *
 * Format: scenario/<slugified-query>-<YYYYMMDD>
 */
export declare function generateScenarioBranchName(query: string): string;
/**
 * Generate a branch name for `agentics ask` results.
 *
 * Format: agentics/<slugified-query>-<YYYYMMDD>
 */
export declare function generateAskBranchName(query: string): string;
/**
 * Create and checkout a new scenario branch. Throws on failure.
 */
export declare function createScenarioBranch(branchName: string): void;
/**
 * Commit all staged and unstaged files with a descriptive message.
 * Returns the commit SHA.
 */
export declare function commitScenarioFiles(query: string): string;
/**
 * Switch back to the original branch after scenario materialization.
 */
export declare function checkoutBranch(branchName: string): void;
//# sourceMappingURL=execution-context.d.ts.map