import { TokenUser, Base } from "@openiap/openflow-api";
import { Span } from "@opentelemetry/api";
export declare type tokenType = "local" | "jwtsignin" | "samltoken" | "tokenissued" | "weblogin";
export declare type loginProvider = "saml" | "google" | "openid" | "local" | "websocket";
export declare type clientType = "browser" | "openrpa" | "nodered" | "webapp" | "openflow" | "powershell" | "mobileapp" | "samlverify" | "googleverify" | "aiotmobileapp" | "aiotwebapp";
export declare class Audit {
    static LoginSuccess(user: TokenUser, type: tokenType, provider: loginProvider, remoteip: string, clientagent: clientType, clientversion: string, parent: Span): Promise<void>;
    static ImpersonateSuccess(user: TokenUser, impostor: TokenUser, clientagent: clientType, clientversion: string, parent: Span): Promise<void>;
    static ImpersonateFailed(user: TokenUser, impostor: TokenUser, clientagent: clientType, clientversion: string, parent: Span): Promise<void>;
    static LoginFailed(username: string, type: tokenType, provider: loginProvider, remoteip: string, clientagent: clientType, clientversion: string, parent: Span): Promise<void>;
    static NoderedAction(user: TokenUser, success: boolean, name: string, type: string, image: string, instancename: string, parent: Span): Promise<void>;
    static dot2num(dot: string): number;
    static num2dot(num: number): string;
}
export declare class Singin extends Base {
    success: boolean;
    type: string;
    provider: string;
    userid: string;
    username: string;
    remoteip: string;
    ip: number;
    impostoruserid: string;
    impostorname: string;
    impostorusername: string;
    clientagent: string;
    clientversion: string;
    constructor();
}
export declare class Nodered extends Base {
    success: boolean;
    type: string;
    userid: string;
    username: string;
    image: string;
    imagename: string;
    imageversion: string;
    instancename: string;
    constructor();
}
