/** Ecosystems supported for CI workflow generation */
export type CIEcosystem = 'nodejs' | 'python' | 'go' | 'rust' | 'java' | 'kotlin' | 'ruby' | 'php' | 'dotnet' | 'dart' | 'unknown';
/** Package managers detected per ecosystem */
export type NodePackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
export type PythonPackageManager = 'pip' | 'poetry' | 'uv';
export type JavaBuildTool = 'maven' | 'gradle';
/** CI job types that can be included in a workflow */
export type CIJobType = 'lint' | 'test' | 'build' | 'deploy';
/** GitHub Actions trigger events */
export type CITriggerEvent = 'push' | 'pull_request' | 'workflow_dispatch' | 'schedule';
/** Cache configuration for a CI job */
export interface CICacheConfig {
    enabled: boolean;
    paths: string[];
    keyPrefix: string;
}
/** A single step in a CI job */
export interface CIStep {
    name: string;
    id?: string;
    uses?: string;
    run?: string;
    with?: Record<string, string | number | boolean>;
    env?: Record<string, string>;
    if?: string;
}
/** A single job in a GitHub Actions workflow */
export interface CIJob {
    name: string;
    runsOn: string;
    needs?: string[];
    steps: CIStep[];
    env?: Record<string, string>;
    outputs?: Record<string, string>;
}
/** Complete GitHub Actions workflow configuration */
export interface CIWorkflow {
    name: string;
    filename: string;
    triggers: CITriggerEvent[];
    jobs: Record<string, CIJob>;
}
/** Detected project stack information for CI generation */
export interface CIStackContext {
    ecosystem: CIEcosystem;
    language: string;
    packageManager: string;
    testCommand: string;
    lintCommand: string;
    buildCommand: string;
    hasDocker: boolean;
    nodeVersion?: string;
    pythonVersion?: string;
    goVersion?: string;
    rustChannel?: string;
    javaVersion?: string;
    javaDistribution?: string;
    javaBuildTool?: JavaBuildTool;
}
/** Result of CI workflow generation */
export interface GenerateCIResult {
    ecosystem: CIEcosystem;
    workflowPath: string;
    yamlContent: string;
    jobs: CIJobType[];
    stackContext: CIStackContext;
    driftStepIncluded: boolean;
}
/** Input arguments for the generate_ci tool */
export interface GenerateCIInput {
    projectId: string;
    projectPath: string;
    jobs?: CIJobType[];
    triggers?: CITriggerEvent[];
    nodeVersion?: string;
    pythonVersion?: string;
    goVersion?: string;
    rustChannel?: 'stable' | 'beta' | 'nightly';
    javaVersion?: string;
    workflowName?: string;
    includeDriftStep?: boolean;
    specsDir?: string;
    driftSeverityThreshold?: CISeverityThreshold;
    /** SPEC-257: Add a claude --permission-mode plan validation job to the workflow */
    includeClaudeValidateJob?: boolean;
    /** SPEC-257: Include stream-json output format examples in generated docs */
    includeStreamJson?: boolean;
}
/** Severity threshold for drift detection in CI */
export type CISeverityThreshold = 'critical' | 'warning' | 'info';
/** Configuration for .planu.yml file */
export interface PlanuCIConfig {
    specs: {
        directory: string;
        include?: string[];
        exclude?: string[];
    };
    ci: {
        failOnDrift: boolean;
        severityThreshold: CISeverityThreshold;
        postComment: boolean;
        badge: boolean;
    };
    license?: {
        key: string;
    };
}
/** Input for generating a planu-check CI workflow */
export interface GeneratePlanuCIInput {
    projectId: string;
    specsDir?: string;
    detectDrift?: boolean;
    failOnDrift?: boolean;
    severityThreshold?: CISeverityThreshold;
    postComment?: boolean;
    badge?: boolean;
    workingDirectory?: string;
    /** Include GitHub Actions workflow YAML (default: true). Set false for local-only users without billing. */
    includeGithubActions?: boolean;
    /** Install the local script as a git pre-push hook (default: false). */
    gitHook?: boolean;
}
/** Result of generating a planu-check CI workflow */
export interface GeneratePlanuCIResult {
    workflowYaml: string;
    workflowPath: string;
    planuConfigYaml: string;
    badgeMarkdown: string;
    features: PlanuCIFeature[];
    /** Bash script content for planu-check.sh (always generated). */
    localScript: string;
    /** Path where planu-check.sh should be saved. */
    localScriptPath: string;
}
/** Features included in the generated planu CI workflow */
export type PlanuCIFeature = 'validate' | 'detect-drift' | 'pr-comment' | 'fail-on-drift' | 'badge' | 'planu-config' | 'local-script' | 'git-hook';
/** Options for including a Planu drift detection job in the workflow. */
export interface DriftJobOptions {
    specsDir: string;
    threshold: CISeverityThreshold;
}
/** Options for generating the local planu-check.sh script (SPEC-201) */
export interface LocalScriptOptions {
    specsDir: string;
    detectDrift: boolean;
    failOnDrift: boolean;
    severityThreshold: CISeverityThreshold;
}
/** Configuration for mobile CI job generation */
export interface MobileCiConfig {
    platform: 'ios' | 'android';
    projectPath: string;
    bundleId?: string;
    /** iOS: Xcode scheme to build. Android: Gradle module (default: 'app'). */
    scheme?: string;
}
/** Options for generating a .planu.yml config file */
export interface PlanuConfigOptions {
    specsDir: string;
    failOnDrift: boolean;
    severityThreshold: CISeverityThreshold;
    postComment: boolean;
    badge: boolean;
    include?: string[];
    exclude?: string[];
    licenseKeyRef?: string;
}
//# sourceMappingURL=ci.d.ts.map