import { SemVer } from '../plugin/index.js';
export declare enum AgentType {
    MULTITENANT = 0,
    DEDICATED = 1,
    ONPREMISE = 2
}
export type AgentTags = Record<string, string[]>;
export declare const getAgentTypeName: (agentType: AgentType) => string;
export declare enum AgentStatus {
    ACTIVE = "Active",
    DISCONNECTED = "Disconnected",
    BROWSER_UNREACHABLE = "Browser Unreachable",
    PENDING_REGISTRATION = "Pending Registration",
    STALE = "Stale"
}
export declare enum AgentsHealthStatus {
    HEALTHY = "HEALTHY",
    NO_AGENTS = "NO_AGENTS",
    NO_AGENTS_FOR_PROFILE = "NO_AGENTS_FOR_PROFILE",
    NO_REACHABLE_AGENTS = "NO_REACHABLE_AGENTS",
    UNKNOWN = "UNKNOWN"
}
export type Agent = {
    id: string;
    key: string;
    environment: string;
    status: AgentStatus;
    version: string;
    versionExternal: string;
    supportedPluginVersions: Record<string, SemVer[]>;
    url: string;
    type: AgentType;
    updated: Date;
    created: Date;
    tags: AgentTags;
    verificationKeyIds?: null | string[];
    verificationKeys?: null | Record<string, SignatureVerificationKey>;
    signingKeyId?: null | string;
};
export type AgentKey = {
    key: string;
};
export type SignatureVerificationKey = {
    algorithm: string;
    key: string;
};
export declare const compareSemVer: (version1: SemVer, version2: SemVer) => number;
/**
 * Return a negative number if version1 is lower than version2;
 * positive if the version1 is greater than version2;
 * 0 if they are equivalent.
 *
 * If the versions are both invalid, return 0.
 * Otherwise, the valid version is treated as greater than an invalid version.
 */
export declare const compareAgentExternalVersions: ({ currentVersion, minVersion }: {
    currentVersion: string;
    minVersion: string;
}) => number;
//# sourceMappingURL=agent.d.ts.map