import { IConnection, IOptions } from "../../../../connection.ts";
import { Service } from "../../../../espConnection.ts";
export declare namespace WsSMC {
    type int = number;
    type dateTime = string;
    type unsignedInt = number;
    type long = number;
    enum LockModes {
        ALL = "ALL",
        READ = "READ",
        WRITE = "WRITE",
        HOLD = "HOLD",
        SUB = "SUB"
    }
    enum RoxieControlCmdType {
        Attach = "Attach",
        Detach = "Detach",
        State = "State",
        Reload = "Reload",
        ReloadRetry = "ReloadRetry",
        MemLock = "MemLock",
        MemUnlock = "MemUnlock",
        GetMemLocked = "GetMemLocked"
    }
    interface Activity {
        ChatURL: string;
        BannerContent: string;
        BannerColor: string;
        BannerSize: string;
        BannerScroll: string;
        BannerAction: int;
        EnableChatURL: boolean;
        FromSubmitBtn: boolean;
        SortBy: string;
        Descending: boolean;
    }
    interface Exception {
        Code: string;
        Audience: string;
        Source: string;
        Message: string;
    }
    interface Exceptions {
        Source: string;
        Exception: Exception[];
    }
    interface TargetCluster {
        ClusterName: string;
        QueueName: string;
        QueueStatus: string;
        StatusDetails: string;
        Warning: string;
        ClusterType: int;
        ClusterSize: int;
        ClusterStatus: int;
    }
    interface ThorClusterList {
        TargetCluster: TargetCluster[];
    }
    interface RoxieClusterList {
        TargetCluster: TargetCluster[];
    }
    interface HThorClusterList {
        TargetCluster: TargetCluster[];
    }
    interface DFUJob {
        TimeStarted: string;
        Done: int;
        Total: int;
        Command: string;
    }
    interface DFUJobs {
        DFUJob: DFUJob[];
    }
    interface ActiveWorkunit {
        Wuid: string;
        State: string;
        StateID: int;
        Owner: string;
        Jobname: string;
        Server: string;
        Instance: string;
        Priority: string;
        Extra: string;
        GraphName: string;
        Duration: string;
        GID: string;
        QueueName: string;
        MemoryBlocked: int;
        IsPausing: boolean;
        Warning: string;
        ClusterName: string;
        ClusterType: string;
        ClusterQueueName: string;
        TargetClusterName: string;
        NoAccess: boolean;
    }
    interface Running {
        ActiveWorkunit: ActiveWorkunit[];
    }
    interface Queues {
        ServerJobQueue: ServerJobQueue[];
    }
    interface ServerJobQueue {
        QueueName: string;
        Queues: Queues;
        ServerName: string;
        ServerType: string;
        QueueStatus: string;
        StatusDetails: string;
        NetworkAddress: string;
        Port: int;
    }
    interface ServerJobQueues {
        ServerJobQueue: ServerJobQueue[];
    }
    interface ActivityResponse {
        Exceptions: Exceptions;
        Build: string;
        ThorClusterList: ThorClusterList;
        RoxieClusterList: RoxieClusterList;
        HThorClusterList: HThorClusterList;
        DFUJobs: DFUJobs;
        Running: Running;
        BannerContent: string;
        BannerColor: string;
        BannerSize: string;
        BannerScroll: string;
        ChatURL: string;
        ShowBanner: int;
        ShowChatURL: int;
        SortBy: string;
        Descending: boolean;
        SuperUser: boolean;
        AccessRight: string;
        ServerJobQueues: ServerJobQueues;
        ActivityTime: string;
        DaliDetached: boolean;
    }
    interface BrowseResources {
    }
    interface HPCCResource {
        Name: string;
        Description: string;
        FileName: string;
        Version: string;
    }
    interface HPCCResources {
        HPCCResource: HPCCResource[];
    }
    interface HPCCResourceRepository {
        Name: string;
        Path: string;
        HPCCResources: HPCCResources;
    }
    interface HPCCResourceRepositories {
        HPCCResourceRepository: HPCCResourceRepository[];
    }
    interface BrowseResourcesResponse {
        Exceptions: Exceptions;
        PortalURL: string;
        ESPInstance: string;
        OS: int;
        UseResource: boolean;
        HPCCResourceRepositories: HPCCResourceRepositories;
    }
    interface ClearQueue {
        Cluster: string;
        QueueName: string;
        Comment: string;
        ServerType: string;
        NetworkAddress: string;
        Port: int;
    }
    interface TargetClusterInfo {
        ClusterName: string;
        QueueName: string;
        QueueStatus: string;
        StatusDetails: string;
        Warning: string;
        ClusterType: int;
        ClusterSize: int;
        ClusterStatus: int;
    }
    interface ServerInfo {
        QueueName: string;
        Queues: Queues;
        ServerName: string;
        ServerType: string;
        QueueStatus: string;
        StatusDetails: string;
        NetworkAddress: string;
        Port: int;
    }
    interface Workunits {
        ActiveWorkunit: ActiveWorkunit[];
    }
    interface StatusServerInfo {
        TargetClusterInfo: TargetClusterInfo;
        ServerInfo: ServerInfo;
        Workunits: Workunits;
    }
    interface SMCQueueResponse {
        Exceptions: Exceptions;
        StatusServerInfo: StatusServerInfo;
    }
    interface GetBuildInfo {
    }
    interface NamedValue {
        Name: string;
        Value: string;
    }
    interface BuildInfo {
        NamedValue: NamedValue[];
    }
    interface GetBuildInfoResponse {
        Exceptions: Exceptions;
        BuildInfo: BuildInfo;
    }
    interface Dimension {
        Name: string;
        Value: string;
    }
    interface Dimensions {
        Dimension: Dimension[];
    }
    interface DateTimeRange {
        Start: dateTime;
        End: dateTime;
    }
    interface GetGlobalMetrics {
        Category: string;
        Dimensions: Dimensions;
        DateTimeRange: DateTimeRange;
    }
    interface Dimensions2 {
        Dimension: Dimension[];
    }
    interface Stat {
        Name: string;
        Value: string;
    }
    interface Stats {
        Stat: Stat[];
    }
    interface GlobalMetric {
        Category: string;
        Dimensions: Dimensions2;
        DateTimeRange: DateTimeRange;
        Stats: Stats;
    }
    interface GlobalMetrics {
        GlobalMetric: GlobalMetric[];
    }
    interface GetGlobalMetricsResponse {
        Exceptions: Exceptions;
        GlobalMetrics: GlobalMetrics;
    }
    interface GetStatusServerInfo {
        ServerName: string;
        ServerType: string;
        NetworkAddress: string;
        Port: int;
    }
    interface GetStatusServerInfoResponse {
        Exceptions: Exceptions;
        StatusServerInfo: StatusServerInfo;
    }
    interface GetThorQueueAvailability {
    }
    interface ThorCluster {
        ClusterName: string;
        QueueName: string;
        QueueStatus: string;
        QueueAvailable: int;
        JobsRunning: int;
        JobsInQueue: int;
        QueueStatus2: int;
        ThorLCR: string;
        ClusterSize: int;
    }
    interface ThorClusters {
        ThorCluster: ThorCluster[];
    }
    interface GetThorQueueAvailabilityResponse {
        Exceptions: Exceptions;
        ThorClusters: ThorClusters;
    }
    interface Index {
    }
    interface SMCIndexResponse {
        Exceptions: Exceptions;
    }
    interface LockQuery {
        EPIP: string;
        XPath: string;
        DurationMSLow: unsignedInt;
        DurationMSHigh: unsignedInt;
        TimeLockedLow: string;
        TimeLockedHigh: string;
        Mode: LockModes;
        AllFileLocks: boolean;
    }
    interface ModeNames {
        Item: string[];
    }
    interface Lock {
        EPIP: string;
        XPath: string;
        LogicalFile: string;
        SessionID: long;
        DurationMS: unsignedInt;
        TimeLocked: string;
        Modes: string;
        ModeNames: ModeNames;
    }
    interface Locks {
        Lock: Lock[];
    }
    interface LockQueryResponse {
        Exceptions: Exceptions;
        Locks: Locks;
        NumLocks: int;
    }
    interface MoveJobBack {
        ClusterType: int;
        Cluster: string;
        QueueName: string;
        Wuid: string;
    }
    interface SMCJobResponse {
        Exceptions: Exceptions;
    }
    interface MoveJobDown {
        ClusterType: int;
        Cluster: string;
        QueueName: string;
        Wuid: string;
    }
    interface MoveJobFront {
        ClusterType: int;
        Cluster: string;
        QueueName: string;
        Wuid: string;
    }
    interface MoveJobUp {
        ClusterType: int;
        Cluster: string;
        QueueName: string;
        Wuid: string;
    }
    interface NotInCommunityEdition {
        EEPortal: string;
    }
    interface NotInCommunityEditionResponse {
        Exceptions: Exceptions;
    }
    interface PauseQueue {
        Cluster: string;
        QueueName: string;
        Comment: string;
        ServerType: string;
        NetworkAddress: string;
        Port: int;
    }
    interface Ping {
    }
    interface WsSMCPingResponse {
    }
    interface RecordGlobalMetrics {
        Category: string;
        Dimensions: Dimensions;
        Stats: Stats;
    }
    interface RecordGlobalMetricsResponse {
        Exceptions: Exceptions;
        Result: string;
    }
    interface RemoveJob {
        ClusterType: int;
        Cluster: string;
        QueueName: string;
        Wuid: string;
    }
    interface ResumeQueue {
        Cluster: string;
        QueueName: string;
        Comment: string;
        ServerType: string;
        NetworkAddress: string;
        Port: int;
    }
    interface RoxieControlCmd {
        ProcessCluster: string;
        TargetCluster: string;
        Command: RoxieControlCmdType;
        Wait: int;
    }
    interface Endpoint {
        Address: string;
        Attached: boolean;
        StateHash: string;
        Status: string;
        MemLocked: boolean;
    }
    interface Endpoints {
        Endpoint: Endpoint[];
    }
    interface RoxieControlCmdResponse {
        Exceptions: Exceptions;
        Endpoints: Endpoints;
    }
    interface QueryIds {
        Item: string[];
    }
    interface RoxieXrefCmd {
        RoxieCluster: string;
        QueryIds: QueryIds;
        CheckAllNodes: boolean;
        Wait: int;
    }
    interface RoxieXrefCmdResponse {
        Exceptions: Exceptions;
        Result: string;
    }
    interface SetBanner {
        ChatURL: string;
        BannerContent: string;
        BannerColor: string;
        BannerSize: string;
        BannerScroll: string;
        BannerAction: int;
        EnableChatURL: boolean;
        FromSubmitBtn: boolean;
    }
    interface SetBannerResponse {
        Exceptions: Exceptions;
    }
    interface SMCJob {
        Wuid: string;
        QueueName: string;
    }
    interface SMCJobs {
        SMCJob: SMCJob[];
    }
    interface SetJobPriority {
        QueueName: string;
        Wuid: string;
        Priority: string;
        SMCJobs: SMCJobs;
    }
    interface SMCPriorityResponse {
        Exceptions: Exceptions;
    }
    interface StopQueue {
        Cluster: string;
        QueueName: string;
        Comment: string;
        ServerType: string;
        NetworkAddress: string;
        Port: int;
    }
}
export declare class SMCServiceBase extends Service {
    constructor(optsConnection: IOptions | IConnection);
    Activity(request: Partial<WsSMC.Activity>): Promise<WsSMC.ActivityResponse>;
    BrowseResources(request: Partial<WsSMC.BrowseResources>): Promise<WsSMC.BrowseResourcesResponse>;
    ClearQueue(request: Partial<WsSMC.ClearQueue>): Promise<WsSMC.SMCQueueResponse>;
    GetBuildInfo(request: Partial<WsSMC.GetBuildInfo>): Promise<WsSMC.GetBuildInfoResponse>;
    GetGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<WsSMC.GetGlobalMetricsResponse>;
    GetStatusServerInfo(request: Partial<WsSMC.GetStatusServerInfo>): Promise<WsSMC.GetStatusServerInfoResponse>;
    GetThorQueueAvailability(request: Partial<WsSMC.GetThorQueueAvailability>): Promise<WsSMC.GetThorQueueAvailabilityResponse>;
    Index(request: Partial<WsSMC.Index>): Promise<WsSMC.SMCIndexResponse>;
    LockQuery(request: Partial<WsSMC.LockQuery>): Promise<WsSMC.LockQueryResponse>;
    MoveJobBack(request: Partial<WsSMC.MoveJobBack>): Promise<WsSMC.SMCJobResponse>;
    MoveJobDown(request: Partial<WsSMC.MoveJobDown>): Promise<WsSMC.SMCJobResponse>;
    MoveJobFront(request: Partial<WsSMC.MoveJobFront>): Promise<WsSMC.SMCJobResponse>;
    MoveJobUp(request: Partial<WsSMC.MoveJobUp>): Promise<WsSMC.SMCJobResponse>;
    NotInCommunityEdition(request: Partial<WsSMC.NotInCommunityEdition>): Promise<WsSMC.NotInCommunityEditionResponse>;
    PauseQueue(request: Partial<WsSMC.PauseQueue>): Promise<WsSMC.SMCQueueResponse>;
    Ping(request: Partial<WsSMC.Ping>): Promise<WsSMC.WsSMCPingResponse>;
    RecordGlobalMetrics(request: Partial<WsSMC.RecordGlobalMetrics>): Promise<WsSMC.RecordGlobalMetricsResponse>;
    RemoveJob(request: Partial<WsSMC.RemoveJob>): Promise<WsSMC.SMCJobResponse>;
    ResumeQueue(request: Partial<WsSMC.ResumeQueue>): Promise<WsSMC.SMCQueueResponse>;
    RoxieControlCmd(request: Partial<WsSMC.RoxieControlCmd>): Promise<WsSMC.RoxieControlCmdResponse>;
    RoxieXrefCmd(request: Partial<WsSMC.RoxieXrefCmd>): Promise<WsSMC.RoxieXrefCmdResponse>;
    SetBanner(request: Partial<WsSMC.SetBanner>): Promise<WsSMC.SetBannerResponse>;
    SetJobPriority(request: Partial<WsSMC.SetJobPriority>): Promise<WsSMC.SMCPriorityResponse>;
    StopQueue(request: Partial<WsSMC.StopQueue>): Promise<WsSMC.SMCQueueResponse>;
}
