/**
 * ServerValidator - Security validation for custom LSP servers
 *
 * @see spec.md US-004: Custom LSP Registration
 * @satisfies AC-US4-02, AC-US4-03, AC-US4-04
 */
/**
 * Trust store for persisting user confirmations
 */
export interface TrustStore {
    isTrusted(serverId: string): Promise<boolean>;
    trust(serverId: string): Promise<void>;
}
/**
 * Binary checker for validating executables
 */
export interface BinaryChecker {
    exists(path: string): Promise<boolean>;
    isExecutable(path: string): Promise<boolean>;
}
/**
 * Result of server validation
 */
export interface ValidationResult {
    /** Whether the server is valid */
    valid: boolean;
    /** Whether user confirmation is required */
    requiresConfirmation: boolean;
    /** Error message if invalid */
    error?: string;
}
/**
 * Warning callback type
 */
export type WarnCallback = (message: string) => void;
/**
 * Validates custom LSP servers for security
 */
export declare class ServerValidator {
    private readonly trustStore;
    private readonly binaryChecker;
    private readonly warnCallback;
    constructor(trustStore: TrustStore, binaryChecker: BinaryChecker, warnCallback: WarnCallback);
    /**
     * Validate a custom LSP server
     *
     * @param serverId - Unique identifier for the server
     * @param binaryPath - Path to the server binary
     * @returns Validation result
     */
    validateCustomServer(serverId: string, binaryPath: string): Promise<ValidationResult>;
    /**
     * Validate a binary file
     *
     * @param path - Path to the binary
     * @returns Validation result
     */
    validateBinary(path: string): Promise<ValidationResult>;
    /**
     * Confirm trust for a server
     *
     * @param serverId - Server ID to trust
     */
    confirmTrust(serverId: string): Promise<void>;
}
//# sourceMappingURL=server-validator.d.ts.map