import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { RequestScheduler } from './classes.requestscheduler.js';
import { type IResourceState } from './classes.resourcestate.js';
import { type ISessionState } from './classes.sessionstate.js';
export declare const appState: plugins.deesElement.domtools.plugins.smartstate.Smartstate<string>;
export declare const requestScheduler: RequestScheduler;
export type TProtectedExecutionPolicy = {
    mode: 'independent';
} | {
    mode: 'latest';
} | {
    mode: 'mutation';
    domain: string;
};
export interface ILoginState extends ISessionState {
}
export interface ISystemState {
    status: interfaces.data.ISystemStatus | null;
    resource: IResourceState;
}
export interface IServicesState {
    services: interfaces.data.IService[];
    currentService: interfaces.data.IService | null;
    currentHostedAppLifecycle: interfaces.data.IHostedAppLifecycleState | null;
    currentServiceLogs: interfaces.data.ILogEntry[];
    currentServiceStats: interfaces.data.IContainerStats | null;
    platformServices: interfaces.data.IPlatformService[];
    currentPlatformService: interfaces.data.IPlatformService | null;
    currentPlatformServiceStats: interfaces.data.IContainerStats | null;
    currentPlatformServiceLogs: interfaces.data.ILogEntry[];
}
export interface INetworkState {
    targets: interfaces.data.INetworkTarget[];
    stats: interfaces.data.INetworkStats | null;
    statsResource: IResourceState;
    trafficStats: interfaces.data.ITrafficStats | null;
    dnsRecords: interfaces.data.IDnsRecord[];
    domains: interfaces.data.IDomainDetail[];
    gatewayDomains: interfaces.data.IGatewayDomain[];
    gatewayDnsRecords: interfaces.data.IGatewayDnsRecord[];
    certificates: interfaces.data.ICertificate[];
}
export interface IRegistriesState {
    tokens: interfaces.data.IRegistryToken[];
    registryStatus: {
        running: boolean;
        port: number;
    } | null;
}
export interface IBackupsState {
    backups: interfaces.data.IBackup[];
    schedules: interfaces.data.IBackupSchedule[];
}
export interface ISettingsState {
    settings: interfaces.data.ISettings | null;
    backupPasswordConfigured: boolean;
    managedDcRouterStatus: interfaces.data.IManagedDcRouterStatus | null;
    storageTargets: interfaces.data.IStorageTarget[];
    storageClasses: interfaces.data.IStorageClass[];
}
export interface IAppStoreState {
    apps: interfaces.requests.IAppStoreApp[];
    sourceInfo: interfaces.requests.IAppStoreSourceInfo | null;
    upgradeableServices: interfaces.requests.IUpgradeableAppStoreService[];
    upgradeOperations: interfaces.requests.IAppStoreUpgradeOperation[];
}
export interface IUiState {
    activeView: string;
    activeSubview: string | null;
    autoRefresh: boolean;
    refreshInterval: number;
    pendingAppTemplate?: any;
}
export declare const loginStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, ILoginState>;
export declare const systemStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, ISystemState>;
export declare const servicesStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IServicesState>;
export declare const networkStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, INetworkState>;
export declare const registriesStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IRegistriesState>;
export declare const backupsStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IBackupsState>;
export declare const settingsStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, ISettingsState>;
export declare const appStoreStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IAppStoreState>;
export declare const uiStatePart: plugins.deesElement.domtools.plugins.smartstate.StatePart<string, IUiState>;
export declare const getRequiredState: <TState>(statePartArg: {
    getState: () => TState | undefined;
}) => TState;
export declare const isAuthenticatedSession: () => boolean;
export declare const acceptIdentity: (identityArg: interfaces.data.IIdentity) => Promise<void>;
export declare const logout: (optionsArg?: {
    notifyServer?: boolean;
}) => Promise<void>;
export declare const dispatchProtectedAction: <TState extends object, TPayload, TStatePart extends {
    getState: () => TState | undefined;
    setState: (stateArg: TState) => Promise<TState>;
}, TActionContext>(actionArg: {
    statePartRef: TStatePart;
    actionDef: (statePartArg: TStatePart, payloadArg: TPayload, contextArg: TActionContext) => Promise<TState>;
}, payloadArg: TPayload) => Promise<TState>;
export declare const runProtectedRequest: <TResult>(scopeArg: string, payloadArg: unknown, requestArg: (identityArg: interfaces.data.IIdentity) => Promise<TResult>, policyArg?: TProtectedExecutionPolicy) => Promise<TResult | undefined>;
export declare const verifyPersistedSession: () => Promise<void>;
export declare const fetchSystemStatus: () => Promise<void>;
export declare const fetchServicesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, unknown>;
export declare const fetchServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const createServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    config: interfaces.data.IServiceCreate;
}>;
export declare const deleteServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const dismissHostedAppBootstrapAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const startServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const stopServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const restartServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const fetchServiceLogsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
    lines?: number;
}>;
export declare const fetchServiceStatsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    name: string;
}>;
export declare const fetchPlatformServicesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, unknown>;
export declare const startPlatformServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    serviceType: interfaces.data.TPlatformServiceType;
}>;
export declare const stopPlatformServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    serviceType: interfaces.data.TPlatformServiceType;
}>;
export declare const fetchPlatformServiceStatsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    serviceType: interfaces.data.TPlatformServiceType;
}>;
export declare const fetchPlatformServiceLogsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IServicesState, {
    serviceType: interfaces.data.TPlatformServiceType;
    tail?: number;
}>;
export declare const fetchNetworkTargetsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchNetworkStats: () => Promise<void>;
export declare const fetchTrafficStatsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchDnsRecordsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const syncDnsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchDomainsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchGatewayDomainsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchGatewayDnsRecordsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const fetchCertificatesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, unknown>;
export declare const renewCertificateAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<INetworkState, {
    domain: string;
}>;
export declare const fetchRegistryTokensAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRegistriesState, unknown>;
export declare const createRegistryTokenAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRegistriesState, {
    token: interfaces.data.ICreateTokenRequest;
}>;
export declare const deleteRegistryTokenAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IRegistriesState, {
    tokenId: number;
}>;
export declare const fetchBackupsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, unknown>;
export declare const deleteBackupAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, {
    backupId: number;
}>;
export declare const fetchSchedulesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, unknown>;
export declare const createScheduleAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, {
    config: interfaces.data.IBackupScheduleCreate;
}>;
export declare const deleteScheduleAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, {
    scheduleId: number;
}>;
export declare const triggerScheduleAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IBackupsState, {
    scheduleId: number;
}>;
export declare const fetchSettingsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const fetchStorageConfigAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const upsertStorageTargetAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    storageTarget: Omit<interfaces.data.IStorageTarget, "createdAt" | "updatedAt">;
}>;
export declare const deleteStorageTargetAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    name: string;
}>;
export declare const upsertStorageClassAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    storageClass: Omit<interfaces.data.IStorageClass, "createdAt" | "updatedAt">;
}>;
export declare const deleteStorageClassAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    name: string;
}>;
export declare const updateSettingsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    settings: Partial<interfaces.data.ISettings>;
}>;
export declare const fetchManagedDcRouterStatusAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const startManagedDcRouterAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const stopManagedDcRouterAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const restartManagedDcRouterAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, unknown>;
export declare const setBackupPasswordAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<ISettingsState, {
    password: string;
}>;
export declare const setActiveViewAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IUiState, {
    view: string;
    subview?: string | null;
}>;
export declare const toggleAutoRefreshAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IUiState, unknown>;
export declare const subscribeTelemetryTarget: (targetArg: interfaces.requests.TTelemetrySubscriptionTarget, ownerArg?: string) => Promise<void>;
export declare const unsubscribeTelemetryTarget: (targetArg: interfaces.requests.TTelemetrySubscriptionTarget, ownerArg?: string) => Promise<void>;
export declare const removeTelemetryTarget: (targetArg: interfaces.requests.TTelemetrySubscriptionTarget) => Promise<void>;
export declare const canAcceptSocketPush: () => boolean;
export declare const fetchAppStoreTemplatesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IAppStoreState, unknown>;
export declare const fetchUpgradeableAppStoreServicesAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IAppStoreState, unknown>;
export declare const fetchAppStoreUpgradeOperationsAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IAppStoreState, unknown>;
export declare const upgradeAppStoreServiceAction: plugins.deesElement.domtools.plugins.smartstate.StateAction<IAppStoreState, {
    serviceName: string;
    targetVersion: string;
}>;
