import type { NOOPAccessor } from '../../../../accessor/base.ts';
import { PathSpec } from '../../../../types.ts';
import type { CommandFnResult, Context } from '../../../config.ts';
import type { Files } from '../../../../workspace/files.ts';
/** Write a new git directory's skeleton, keeping what is there. */
export declare function layOut(vfs: Files, gitdir: PathSpec, branch: string, config: string): Promise<void>;
/**
 * Initialize through the dispatcher; no host templates, hooks or branch advisory.
 *
 * Reinitializing takes the config's lock as git does, so a read-only mount
 * refuses a re-init too, in git's words for where it stopped: the directory an operand
 * names, the config's lock, or the first other directory it had to make
 * (pinned against git 2.47.3). With no templates, a bare repository in an
 * existing directory stops at `objects` where git stops at its first template
 * directory.
 */
export declare function init(_accessor: NOOPAccessor, paths: PathSpec[], texts: string[], ctx: Context): Promise<CommandFnResult>;
//# sourceMappingURL=init.d.ts.map