import * as plugins from '../plugins.js';
import * as interfaces from '../../dist_ts_interfaces/index.js';
export interface IVpnState {
    clients: interfaces.data.IVpnClient[];
    connectedClients: interfaces.data.IVpnConnectedClient[];
    status: interfaces.data.IVpnServerStatus | null;
    isLoading: boolean;
    error: string | null;
    lastUpdated: number;
    /** WireGuard config shown after create/rotate (only shown once) */
    newClientConfig: string | null;
}
export declare const vpnStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IVpnState>;
export declare const fetchVpnAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, unknown>;
export declare const createVpnClientAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, {
    clientId: string;
    targetProfileIds?: string[];
    description?: string;
    destinationAllowList?: string[];
    destinationBlockList?: string[];
    useHostIp?: boolean;
    useDhcp?: boolean;
    staticIp?: string;
    forceVlan?: boolean;
    vlanId?: number;
}>;
export declare const deleteVpnClientAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, string>;
export declare const toggleVpnClientAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, {
    clientId: string;
    enabled: boolean;
}>;
export declare const updateVpnClientAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, {
    clientId: string;
    description?: string;
    targetProfileIds?: string[];
    destinationAllowList?: string[];
    destinationBlockList?: string[];
    useHostIp?: boolean;
    useDhcp?: boolean;
    staticIp?: string;
    forceVlan?: boolean;
    vlanId?: number;
}>;
export declare const clearNewClientConfigAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IVpnState, unknown>;
