import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import * as plugins from '../../plugins.js';
import * as appstate from '../../appstate.js';
declare global {
    interface HTMLElementTagNameMap {
        'ops-view-vpn': OpsViewVpn;
    }
}
export declare class OpsViewVpn extends DeesElement {
    accessor vpnState: appstate.IVpnState;
    accessor targetProfilesState: appstate.ITargetProfilesState;
    constructor();
    connectedCallback(): Promise<void>;
    static styles: plugins.deesElement.CSSResult[];
    /** Look up connected client info by clientId or assignedIp */
    private getConnectedInfo;
    render(): TemplateResult;
    private ensureTargetProfilesLoaded;
    private renderTargetProfileBadges;
    /**
     * Build stable profile labels for list inputs.
     */
    private getTargetProfileChoices;
    private getTargetProfileCandidates;
    /**
     * Convert profile IDs to form labels (for populating edit form values).
     */
    private resolveProfileIdsToLabels;
    /**
     * Convert profile form labels back to IDs.
     */
    private resolveProfileLabelsToIds;
}
