/**
 * Add Command - Phase 4 Integration
 * Add services and features to existing ZinTrust project
 */
import type { IBaseCommand } from '../BaseCommand';
import type { ResponseField } from '../scaffolding/ResponseFactoryGenerator';
interface ServicePromptAnswers {
    name: string;
    domain: string;
    port: number;
    database: 'shared' | 'isolated';
    auth: 'api-key' | 'jwt' | 'none' | 'custom';
}
interface FeaturePromptAnswers {
    name: string;
    servicePath: string;
    withTest: boolean;
}
interface MigrationPromptAnswers {
    name: string;
    type: string;
}
interface ModelPromptAnswers {
    name: string;
    softDelete: boolean;
    timestamps: boolean;
}
interface ControllerPromptAnswers {
    name: string;
    type: string;
}
interface RoutesPromptAnswers {
    name: string;
}
interface MiddlewarePromptAnswers {
    name: string;
}
interface FactoryPromptAnswers {
    name: string;
    model: string;
    addRelationships: boolean;
    relationships?: string;
}
interface SeederPromptAnswers {
    name: string;
    model: string;
    count: string;
    states: boolean;
    relationships: boolean;
    truncate: boolean;
}
interface RequestFactoryPromptAnswers {
    factoryName: string;
    requestName: string;
    endpoint: string;
    method: string;
    withDTO: boolean;
}
interface ResponseFactoryPromptAnswers {
    factoryName: string;
    responseName: string;
    responseType: string;
    factoryPath?: string;
    responsePath?: string;
    withDTO: boolean;
}
/**
 * Add Command Factory
 */
export declare const AddCommand: Readonly<{
    /**
     * Create a new add command instance
     */
    create(): IBaseCommand;
    /**
     * Internal helpers for testing
     * @internal
     */
    _helpers: {
        promptServiceConfig: (defaultName: string) => Promise<ServicePromptAnswers>;
        promptFeatureConfig: () => Promise<FeaturePromptAnswers>;
        promptMigrationConfig: () => Promise<MigrationPromptAnswers>;
        promptModelConfig: () => Promise<ModelPromptAnswers>;
        promptControllerConfig: () => Promise<ControllerPromptAnswers>;
        promptRoutesConfig: () => Promise<RoutesPromptAnswers>;
        promptMiddlewareConfig: () => Promise<MiddlewarePromptAnswers>;
        promptFactoryConfig: () => Promise<FactoryPromptAnswers>;
        promptSeederConfig: () => Promise<SeederPromptAnswers>;
        promptRequestFactoryConfig: () => Promise<RequestFactoryPromptAnswers>;
        promptResponseFactoryName: () => Promise<string>;
        promptResponseFactoryConfig: (defaultResponseName: string) => Promise<ResponseFactoryPromptAnswers>;
        promptWorkflowConfig: (defaultName: string) => Promise<{
            name: string;
            platform: "lambda" | "fargate" | "cloudflare" | "deno" | "all";
        }>;
        getDefaultResponseFields: (responseType: string) => ResponseField[];
        isPascalCaseBase: (value: string) => boolean;
        toSafeSnakeCase: (value: string) => string;
        stripSuffix: (value: string, suffix: string) => string;
        skipInlineWhitespace: (value: string, startIndex: number) => number;
        findMatchingObjectBrace: (value: string, startIndex: number) => number | undefined;
        findRouteBlockBounds: (configSource: string) => {
            blockStart: number;
            innerStart: number;
            innerEnd: number;
            blockEnd: number;
        } | undefined;
        hasTrailingMiddlewaresTypeCast: (configSource: string) => boolean;
        registerMiddlewareRouteKey: (configSource: string, middlewareName: string, middlewareKey: string) => {
            content: string;
            updated: boolean;
        };
    };
}>;
export {};
//# sourceMappingURL=AddCommand.d.ts.map