/**
 * @file Flag predicates — `is*` checks across parsed `FlagValues`, raw
 *   `process.argv`, or no input. Split out of `argv/flags.ts` for size hygiene.
 *   Every predicate follows the same 3-branch shape, so they're built via a
 *   single `makeFlagPredicate` factory:
 *
 *   1. no input → consult the frozen `processArg` snapshot
 *   2. string[] input → `Array.includes` lookup of each flag form
 *   3. FlagValues input → boolean-coerce each key Long forms, short aliases, and
 *      `FlagValues` keys are all configurable per predicate (e.g. `isQuiet`
 *      accepts both `--quiet` and `--silent`).
 */
import type { FlagInput } from './flag-types';
/**
 * Build a flag predicate that accepts `FlagValues`, `string[]`, or `undefined`
 * (in which case it consults the frozen `processArg`).
 *
 * @private
 *
 * @param longFlags - Long-form flags to match in argv arrays (e.g. `['--quiet',
 *   '--silent']`).
 * @param shortFlags - Short-form flags to match in argv arrays (e.g. `['-q']`).
 * @param keys - `FlagValues` keys to coerce when given a parsed object
 *   (defaults to the first long flag with `--` stripped).
 */
export declare function makeFlagPredicate(longFlags: readonly string[], shortFlags?: readonly string[], keys?: readonly string[]): (input?: FlagInput) => boolean;
/**
 * Check if all flag is set. Accepts FlagValues object, process.argv array, or
 * undefined (uses process.argv).
 *
 * @example
 *   ;```typescript
 *   isAll({ all: true }) // true
 *   isAll(['--all']) // true
 *   ```
 */
export declare const isAll: (input?: FlagInput) => boolean;
/**
 * Check if changed files mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isChanged({ changed: true }) // true
 *   isChanged(['--changed']) // true
 *   ```
 */
export declare const isChanged: (input?: FlagInput) => boolean;
/**
 * Check if coverage mode is enabled. Checks both 'coverage' and 'cover' flags.
 *
 * @example
 *   ;```typescript
 *   isCoverage({ coverage: true }) // true
 *   isCoverage(['--cover']) // true
 *   ```
 */
export declare const isCoverage: (input?: FlagInput) => boolean;
/**
 * Check if debug mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isDebug({ debug: true }) // true
 *   isDebug(['--debug']) // true
 *   ```
 */
export declare const isDebug: (input?: FlagInput) => boolean;
/**
 * Check if dry-run mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isDryRun({ 'dry-run': true }) // true
 *   isDryRun(['--dry-run']) // true
 *   ```
 */
export declare const isDryRun: (input?: FlagInput) => boolean;
/**
 * Check if fix/autofix mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isFix({ fix: true }) // true
 *   isFix(['--fix']) // true
 *   ```
 */
export declare const isFix: (input?: FlagInput) => boolean;
/**
 * Check if force mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isForce({ force: true }) // true
 *   isForce(['--force']) // true
 *   ```
 */
export declare const isForce: (input?: FlagInput) => boolean;
/**
 * Check if help flag is set.
 *
 * @example
 *   ;```typescript
 *   isHelp({ help: true }) // true
 *   isHelp(['-h']) // true
 *   ```
 */
export declare const isHelp: (input?: FlagInput) => boolean;
/**
 * Check if JSON output is requested.
 *
 * @example
 *   ;```typescript
 *   isJson({ json: true }) // true
 *   isJson(['--json']) // true
 *   ```
 */
export declare const isJson: (input?: FlagInput) => boolean;
/**
 * Check if quiet/silent mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isQuiet({ quiet: true }) // true
 *   isQuiet(['--silent']) // true
 *   ```
 */
export declare const isQuiet: (input?: FlagInput) => boolean;
/**
 * Check if staged files mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isStaged({ staged: true }) // true
 *   isStaged(['--staged']) // true
 *   ```
 */
export declare const isStaged: (input?: FlagInput) => boolean;
/**
 * Check if update mode is enabled (for snapshots, dependencies, etc).
 *
 * @example
 *   ;```typescript
 *   isUpdate({ update: true }) // true
 *   isUpdate(['-u']) // true
 *   ```
 */
export declare const isUpdate: (input?: FlagInput) => boolean;
/**
 * Check if verbose mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isVerbose({ verbose: true }) // true
 *   isVerbose(['--verbose']) // true
 *   ```
 */
export declare const isVerbose: (input?: FlagInput) => boolean;
/**
 * Check if watch mode is enabled.
 *
 * @example
 *   ;```typescript
 *   isWatch({ watch: true }) // true
 *   isWatch(['-w']) // true
 *   ```
 */
export declare const isWatch: (input?: FlagInput) => boolean;
/**
 * Get the appropriate log level based on flags. Returns 'silent', 'error',
 * 'warn', 'info', 'verbose', or 'debug'.
 *
 * @example
 *   ;```typescript
 *   getLogLevel() // 'info' (default)
 *   getLogLevel({ quiet: true }) // 'silent'
 *   getLogLevel(['--debug']) // 'debug'
 *   ```
 */
export declare function getLogLevel(input?: FlagInput): string;
