import { IConnection, IOptions } from "../../../../connection.ts";
import { Service } from "../../../../espConnection.ts";
export declare namespace WsLogaccess {
    type dateTime = string;
    type unsignedInt = number;
    type long = number;
    enum LogColumnType {
        global = "global",
        workunits = "workunits",
        components = "components",
        audience = "audience",
        class = "class",
        instance = "instance",
        node = "node",
        message = "message",
        logid = "logid",
        processid = "processid",
        threadid = "threadid",
        timestamp = "timestamp",
        pod = "pod",
        traceid = "traceid",
        spanid = "spanid"
    }
    enum LogColumnValueType {
        string = "string",
        numeric = "numeric",
        datetime = "datetime",
        enum = "enum",
        epoch = "epoch"
    }
    enum LogAccessType {
        All = 0,
        ByJobID = 1,
        ByComponent = 2,
        ByLogType = 3,
        ByTargetAudience = 4,
        BySourceInstance = 5,
        BySourceNode = 6,
        ByFieldName = 7,
        ByPod = 8,
        ByTraceID = 9,
        BySpanID = 10
    }
    enum LogAccessStatusCode {
        Success = 0,
        Warning = 1,
        Fail = 2
    }
    enum LogAccessFilterOperator {
        NONE = 0,
        AND = 1,
        OR = 2
    }
    enum LogSelectColumnMode {
        MIN = 0,
        DEFAULT = 1,
        ALL = 2,
        CUSTOM = 3
    }
    enum SortColumType {
        ByDate = 0,
        ByJobID = 1,
        ByComponent = 2,
        ByLogType = 3,
        ByTargetAudience = 4,
        BySourceInstance = 5,
        BySourceNode = 6,
        ByFieldName = 7,
        ByPod = 8,
        ByTraceID = 9,
        BySpanID = 10
    }
    enum SortDirection {
        ASC = 0,
        DSC = 1
    }
    interface GetHealthReportRequest {
        IncludeConfiguration?: boolean;
        IncludeDebugReport?: boolean;
        IncludeSampleQuery?: boolean;
    }
    interface Exception {
        Code: string;
        Audience: string;
        Source: string;
        Message: string;
    }
    interface Exceptions {
        Source: string;
        Exception: Exception[];
    }
    interface MessageArray {
        Item: string[];
    }
    interface Status {
        Code: LogAccessStatusCode;
        MessageArray: MessageArray;
    }
    interface DebugReport {
        SampleQueryReport: string;
        PluginDebugReport: string;
        ServerDebugReport: string;
    }
    interface GetHealthReportResponse {
        Exceptions: Exceptions;
        Status: Status;
        DebugReport: DebugReport;
        Configuration: string;
    }
    interface GetLogAccessInfoRequest {
    }
    interface EnumeratedValues {
        Item: string[];
    }
    interface Column {
        Name: string;
        LogType: LogColumnType;
        EnumeratedValues: EnumeratedValues;
        ColumnMode: LogSelectColumnMode;
        ColumnType: LogColumnValueType;
    }
    interface Columns {
        Column: Column[];
    }
    interface GetLogAccessInfoResponse {
        Exceptions: Exceptions;
        Columns: Columns;
        RemoteLogManagerType: string;
        RemoteLogManagerConnectionString: string;
        SupportsResultPaging: boolean;
    }
    interface leftFilter {
        LogCategory: LogAccessType;
        SearchByValue: string;
        SearchField: string;
    }
    interface rightFilter {
        LogCategory: LogAccessType;
        SearchByValue: string;
        SearchField: string;
    }
    interface rightBinaryFilter {
        BinaryLogFilter: BinaryLogFilter[];
    }
    interface BinaryLogFilter {
        leftFilter: leftFilter;
        leftBinaryFilter: leftBinaryFilter;
        Operator: LogAccessFilterOperator;
        rightFilter: {
            LogCategory: LogAccessType;
            SearchByValue: string;
            SearchField: string;
        };
        rightBinaryFilter: {
            BinaryLogFilter: BinaryLogFilter[];
        };
    }
    interface leftBinaryFilter {
        BinaryLogFilter: BinaryLogFilter[];
    }
    interface Filter {
        leftFilter?: leftFilter;
        leftBinaryFilter?: leftBinaryFilter;
        Operator?: LogAccessFilterOperator;
        rightFilter?: rightFilter;
        rightBinaryFilter?: rightBinaryFilter;
    }
    interface Range {
        StartDate?: dateTime;
        EndDate?: dateTime;
    }
    interface Columns2 {
        Item: string[];
    }
    interface SortCondition {
        BySortType: SortColumType;
        ColumnName: string;
        Direction: SortDirection;
    }
    interface SortBy {
        SortCondition: SortCondition[];
    }
    interface GetLogsRequest {
        Filter?: Filter;
        Range?: Range;
        LogLineLimit?: unsignedInt;
        LogLineStartFrom?: long;
        SelectColumnMode?: LogSelectColumnMode;
        Columns?: Columns2;
        Format?: string;
        SortBy?: SortBy;
    }
    interface GetLogsResponse {
        Exceptions: Exceptions;
        LogLines: string;
        LogLineCount: unsignedInt;
        TotalLogLinesAvailable: unsignedInt;
    }
    interface ws_logaccessPingRequest {
    }
    interface ws_logaccessPingResponse {
    }
}
export declare class LogaccessServiceBase extends Service {
    constructor(optsConnection: IOptions | IConnection);
    GetHealthReport(request: Partial<WsLogaccess.GetHealthReportRequest>): Promise<WsLogaccess.GetHealthReportResponse>;
    GetLogAccessInfo(request: Partial<WsLogaccess.GetLogAccessInfoRequest>): Promise<WsLogaccess.GetLogAccessInfoResponse>;
    GetLogs(request: Partial<WsLogaccess.GetLogsRequest>): Promise<WsLogaccess.GetLogsResponse>;
    Ping(request: Partial<WsLogaccess.ws_logaccessPingRequest>): Promise<WsLogaccess.ws_logaccessPingResponse>;
}
