export interface EnvVariables {
    MCP_IDENTITY_AGENT_DID: string;
    MCP_IDENTITY_AGENT_PUBLIC_KEY: string;
    MCP_IDENTITY_AGENT_PRIVATE_KEY: string;
    MCP_IDENTITY_AGENT_ID: string;
    MCP_IDENTITY_AGENT_SLUG: string;
}
export interface EnvFile {
    path: string;
    filename: string;
    exists: boolean;
    writable: boolean;
    hasMcpIdentity: boolean;
    mcpVariables: Partial<EnvVariables>;
}
export interface EnvInsertionResult {
    success: boolean;
    targetFile: string;
    operation: "created" | "updated" | "replaced";
    warnings: string[];
    conflicts?: {
        file: string;
        variable: string;
        value: string;
    }[];
}
export declare class EnvManager {
    private projectRoot;
    constructor(projectRoot?: string);
    /**
     * Scan for all .env files with detailed analysis
     */
    scanEnvFiles(): EnvFile[];
    /**
     * Determine the best target file using precedence rules
     */
    selectTargetEnvFile(envFiles: EnvFile[]): {
        target: EnvFile | null;
        warnings: string[];
    };
    /**
     * Check for conflicts across multiple .env files
     */
    detectConflicts(envFiles: EnvFile[], newVariables: EnvVariables): {
        file: string;
        variable: string;
        value: string;
    }[];
    /**
     * Smart insertion/update of MCP-I variables
     */
    smartInsertMcpVariables(variables: EnvVariables, options?: {
        force?: boolean;
    }): Promise<EnvInsertionResult>;
    /**
     * Parse .env file and extract MCP-I variables
     */
    private parseEnvFile;
    /**
     * Create a new .env file
     */
    private createEnvFile;
    /**
     * Update existing .env file by replacing MCP-I variables
     */
    private updateExistingEnvFile;
    /**
     * Append MCP-I variables to existing .env file
     */
    private appendToEnvFile;
    /**
     * Find existing .env files in the project
     */
    findExistingEnvFiles(): string[];
    /**
     * Update or create environment file, merging with existing content
     */
    updateEnvFile(filename: string, variables: EnvVariables, options?: {
        force?: boolean;
        example?: boolean;
    }): Promise<void>;
    /**
     * Read environment variables from file
     */
    readEnvFile(filename: string): Partial<EnvVariables>;
    /**
     * Check if .gitignore includes env files
     */
    checkGitignore(envFiles: string[]): {
        missing: string[];
        ignored: string[];
    };
    /**
     * Add files to .gitignore
     */
    addToGitignore(files: string[]): void;
    /**
     * Get environment variables from process.env
     */
    getFromProcess(): Partial<EnvVariables>;
    /**
     * Format environment variables for display
     */
    formatForDisplay(vars: Partial<EnvVariables>, hideSecrets?: boolean): string;
    /**
     * Format for clipboard (no masking)
     */
    formatForClipboard(vars: Partial<EnvVariables>): string;
    /**
     * Check if all required variables are present
     */
    validateVariables(vars: Partial<EnvVariables>): {
        valid: boolean;
        missing: string[];
    };
}
//# sourceMappingURL=env-manager.d.ts.map