import type { PromptContext, SelectChoice } from '../../shared/shared.prompts.js';
export type DocsRepoShape = 'monorepo' | 'single-package' | 'nested-standalone';
export type DocsDetectedRepoShape = Exclude<DocsRepoShape, 'nested-standalone'>;
export type DocsFramework = 'fumadocs' | 'mkdocs';
export type DocsLintMode = 'none' | 'markdownlint-cli2';
export type DocsFormatMode = 'oxfmt' | 'none';
export interface DocsInitResolvedOptions {
    repoRoot: string;
    repoShape: DocsRepoShape;
    framework: DocsFramework;
    appName: string;
    siteName: string;
    targetDir: string;
    siteDescription: string;
    lint: DocsLintMode;
    format: DocsFormatMode;
    rootPatch: boolean;
}
export interface ResolveDocsInitOptionsInput {
    repoRoot: string;
    repoShape: DocsRepoShape;
    interactive: boolean;
    acceptDefaults: boolean;
    providedFramework?: DocsFramework;
    providedAppName?: string;
    providedSiteName?: string;
    providedTargetDir?: string;
    providedSiteDescription?: string;
    providedLint?: DocsLintMode;
    providedFormat?: DocsFormatMode;
    providedRootPatch?: boolean;
    inputWithDefault: (message: string, defaultValue: string, ctx: PromptContext) => Promise<string | null>;
    selectWithAbort: <T extends string>(message: string, choices: SelectChoice<T>[], ctx: PromptContext) => Promise<T | null>;
}
export interface DocsRepoShapeDependencies {
    fileExists: (path: string) => Promise<boolean>;
    dirExists: (path: string) => Promise<boolean>;
    readFile: (path: string, encoding: BufferEncoding) => Promise<string>;
}
export declare function getDefaultDocsAppName(repoRoot: string, repoShape: DocsRepoShape): string;
export declare function getDefaultDocsTargetDir(repoShape: DocsRepoShape, appName: string): string;
export declare function humanizeAppName(appName: string): string;
export declare function detectDocsRepoShape(repoRoot: string, dependencies: DocsRepoShapeDependencies): Promise<DocsDetectedRepoShape>;
export declare function getTemplateDir(framework: DocsFramework): string;
export declare function resolveEffectiveDocsShape(repoShape: DocsRepoShape, framework: DocsFramework, repoRoot: string, targetDir: string): DocsRepoShape;
export declare function resolveDocsInitOptions(input: ResolveDocsInitOptionsInput): Promise<DocsInitResolvedOptions | null>;
export declare const DEFAULT_DOCS_REPO_SHAPE_DEPENDENCIES: DocsRepoShapeDependencies;
//# sourceMappingURL=resolve-options.d.ts.map