/**
 * @file Execute Yarn Classic (v1.x) commands with optimized flags and security
 *   defaults. SECURITY: Array-based arguments prevent command injection. NOTE:
 *   This is the canonical home of the cross-yarn execYarn. Yarn Berry (v2-v4)
 *   and ZPM (v6+) currently delegate to this implementation — that's
 *   load-bearing in the dir layout: when version-specific behavior diverges
 *   (e.g. Berry's `--immutable` replacing Classic's `--frozen-lockfile`), the
 *   override lands in the version's own eco/npm/yarn-{berry,zpm}/exec.ts file,
 *   and yarn-classic stays here.
 */
import type { SpawnOptions } from '../../../../spawn/types';
/**
 * Execute yarn commands with optimized flags and settings.
 *
 * @example
 *   ;```typescript
 *   await execYarn(['install'])
 *   await execYarn(['add', 'lodash'], { cwd: '/tmp/project' })
 *   ```
 */
export declare function execYarn(args: string[], options?: SpawnOptions | undefined): Promise<{
    cmd: string;
    args: string[] | readonly string[];
    code: number;
    signal: NodeJS.Signals | null;
    stdout: string | Buffer<ArrayBufferLike>;
    stderr: string | Buffer<ArrayBufferLike>;
}>;
