import { z } from 'zod';
import { type Options } from '../options.js';
import { File } from './file.js';
declare const schema: z.ZodObject<{
    compilerOptions: z.ZodObject<{
        allowJs: z.ZodOptional<z.ZodBoolean>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        allowJs: z.ZodOptional<z.ZodBoolean>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        allowJs: z.ZodOptional<z.ZodBoolean>;
    }, z.ZodTypeAny, "passthrough">>;
    include: z.ZodArray<z.ZodString, "many">;
}, "strict", z.ZodTypeAny, {
    compilerOptions: {
        allowJs?: boolean | undefined;
    } & {
        [k: string]: unknown;
    };
    include: string[];
}, {
    compilerOptions: {
        allowJs?: boolean | undefined;
    } & {
        [k: string]: unknown;
    };
    include: string[];
}>;
type TsConfigJson = z.infer<typeof schema>;
declare class TsConfig extends File {
    protected readonly _tsConfig: TsConfigJson;
    constructor(path: string, options: Options);
    get tsConfig(): {
        compilerOptions: {
            allowJs?: boolean | undefined;
        } & {
            [k: string]: unknown;
        };
        include: string[];
    };
    process(): this;
}
export { TsConfig, type TsConfigJson };
