export interface HostEntry {
    ip: string;
    domain: string;
    isCreatedByUs: boolean;
    isDisabled: boolean;
    lineNumber?: number;
}
export declare class HostsManager {
    private hostsFilePath;
    constructor();
    /**
     * Lee el archivo hosts y devuelve todas las entradas
     */
    readHosts(): Promise<HostEntry[]>;
    /**
     * Lee solo las entradas locales (127.0.0.1 o ::1)
     */
    readLocalHosts(): Promise<HostEntry[]>;
    /**
     * Parsea el contenido del archivo hosts
     */
    private parseHostsFile;
    /**
     * Agrega un nuevo registro al archivo hosts
     */
    addHost(domain: string, ip?: string): Promise<boolean>;
    /**
     * "Adopta" un dominio existente marcándolo como creado por nuestra aplicación
     */
    adoptHost(domain: string, ip?: string): Promise<boolean>;
    /**
     * Importa todos los dominios locales existentes y los marca como nuestros
     */
    importAllLocalHosts(): Promise<{
        success: boolean;
        count: number;
    }>;
    /**
     * Marca un host existente como creado por nuestra aplicación
     */
    private markHostAsOurs;
    /**
     * Cambia el estado de un host (habilitado/deshabilitado)
     */
    toggleHostState(domain: string, disable: boolean, ip?: string): Promise<boolean>;
    /**
     * Elimina un host que fue creado por nuestra aplicación
     */
    removeHost(domain: string, ip?: string): Promise<boolean>;
    /**
     * Escribe contenido en el archivo hosts
     * Asume que la aplicación ya tiene permisos elevados
     */
    private writeHostsFile;
    /**
     * Agrega contenido al final del archivo hosts
     * Asume que la aplicación ya tiene permisos elevados
     */
    private appendToHostsFile;
}
//# sourceMappingURL=hosts.d.ts.map