export interface AgentAuthPayload {
    gatewayId: string;
    token: string;
    version: string;
    subscriptionKey?: string;
    deviceId?: string;
    deviceName?: string;
}
export interface AgentAuthOkPayload {
    gatewayId: string;
    boundUsers: string[];
    planActive?: boolean;
    principalId?: string;
    entitlementId?: string;
}
export interface AgentAuthFailPayload {
    reason: string;
}
export interface AgentAuthMsg {
    type: "agent.auth";
    id: string;
    payload: AgentAuthPayload;
}
export interface AgentAuthOkMsg {
    type: "agent.auth.ok";
    id: string;
    payload: AgentAuthOkPayload;
}
export interface AgentAuthFailMsg {
    type: "agent.auth.fail";
    id: string;
    payload: AgentAuthFailPayload;
}
export interface AgentHeartbeatPayload {
    timestamp: string;
    subscriptionKey?: string;
    consumed?: Record<string, number>;
}
export interface AgentHeartbeatMsg {
    type: "agent.heartbeat";
    id: string;
    payload: AgentHeartbeatPayload;
}
export interface AgentHeartbeatResponsePayload {
    timestamp: string;
    quotaRemaining?: Record<string, number>;
}
export interface AgentHeartbeatResponseMsg {
    type: "agent.heartbeat.response";
    id: string;
    payload: AgentHeartbeatResponsePayload;
}
export interface AgentStatusPayload {
    alertType: string;
    description: string;
    detail?: string;
}
export interface AgentStatusMsg {
    type: "agent.status";
    id: string;
    payload: AgentStatusPayload;
}
