/** AuditLog */
export interface ComSapHciApiAuditLog {
    ChangeId?: string | null;
    Action?: string | null;
    /**
     * @format date-time
     * @example "2017-04-13T15:51:04Z"
     */
    Timestamp?: string | null;
    UserName?: string | null;
    ObjName?: string | null;
    ObjType?: string | null;
    Source?: string | null;
    NodeType?: string | null;
    UserType?: string | null;
    CustomerVisible?: string | null;
}
/** LogFileArchive */
export interface ComSapHciApiLogFileArchive {
    Scope?: string | null;
    LogFileType?: string | null;
    NodeScope?: string | null;
    ContentType?: string | null;
}
/** LogFile */
export interface ComSapHciApiLogFile {
    Name?: string | null;
    Application?: string | null;
    /**
     * @format date-time
     * @example "2017-04-13T15:51:04Z"
     */
    LastModified?: string | null;
    ContentType?: string | null;
    LogFileType?: string | null;
    NodeScope?: string | null;
    /** @format int64 */
    Size?: number | null;
}
export interface OdataError {
    error: OdataErrorMain;
}
export interface OdataErrorMain {
    code: string;
    message: {
        lang: string;
        value: string;
    };
}
export interface OdataErrorDetail {
    code: string;
    message: string;
    target?: string;
}
export type QueryParamsType = Record<string | number, any>;
export type ResponseFormat = keyof Omit<Body, "body" | "bodyUsed">;
export interface FullRequestParams extends Omit<RequestInit, "body"> {
    /** set parameter to `true` for call `securityWorker` for this request */
    secure?: boolean;
    /** request path */
    path: string;
    /** content type of request body */
    type?: ContentType;
    /** query params */
    query?: QueryParamsType;
    /** format of response (i.e. response.json() -> format: "json") */
    format?: ResponseFormat;
    /** request body */
    body?: unknown;
    /** base url */
    baseUrl?: string;
    /** request cancellation token */
    cancelToken?: CancelToken;
}
export type RequestParams = Omit<FullRequestParams, "body" | "method" | "query" | "path">;
export interface ApiConfig<SecurityDataType = unknown> {
    baseUrl?: string;
    baseApiParams?: Omit<RequestParams, "baseUrl" | "cancelToken" | "signal">;
    securityWorker?: (securityData: SecurityDataType | null) => Promise<RequestParams | void> | RequestParams | void;
    customFetch?: typeof fetch;
}
export interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {
    data: D;
    error: E;
}
type CancelToken = Symbol | string | number;
export declare enum ContentType {
    Json = "application/json",
    FormData = "multipart/form-data",
    UrlEncoded = "application/x-www-form-urlencoded",
    Text = "text/plain"
}
export declare class HttpClient<SecurityDataType = unknown> {
    baseUrl: string;
    private securityData;
    private securityWorker?;
    private abortControllers;
    private customFetch;
    private baseApiParams;
    constructor(apiConfig?: ApiConfig<SecurityDataType>);
    setSecurityData: (data: SecurityDataType | null) => void;
    protected encodeQueryParam(key: string, value: any): string;
    protected addQueryParam(query: QueryParamsType, key: string): string;
    protected addArrayQueryParam(query: QueryParamsType, key: string): any;
    protected toQueryString(rawQuery?: QueryParamsType): string;
    protected addQueryParams(rawQuery?: QueryParamsType): string;
    private contentFormatters;
    protected mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams;
    protected createAbortSignal: (cancelToken: CancelToken) => AbortSignal | undefined;
    abortRequest: (cancelToken: CancelToken) => void;
    request: <T = any, E = any>({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }: FullRequestParams) => Promise<HttpResponse<T, E>>;
}
/**
 * @title Log Files
 * @version 1.0.0
 * @baseUrl https://{Account Short Name}-tmn.{SSL Host}.{landscapehost}/api/v1
 * @externalDocs https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/93bc3722533741c7a48eec6a8352f060.html
 *
 * HTTP log files enables you to access technical system logs written during message processing on the runtime node. HTTP log files contain information on authentication and authorization errors for inbound HTTP communication. The trace log files contain processing information including message payload data.
 * This API is implemented based on OData version 2 specification.
 */
export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
    logFileArchives: {
        /**
         * @description You can use the following request to get all log file collections.
         *
         * @tags Log File Archives
         * @name LogFileArchivesList
         * @summary Get all log file collections.
         * @request GET:/LogFileArchives
         * @secure
         */
        logFileArchivesList: (params?: RequestParams) => Promise<HttpResponse<{
            d?: {
                results?: ComSapHciApiLogFileArchive[];
            };
        }, OdataError>>;
    };
    logFileArchivesScopeScopeLogFileTypeLogFileTypeNodeScopeWorker: {
        /**
         * @description You can use the following request to get log file collections for a scope and type in a compressed file (zip format), which could be downloaded via OData $value option.
         *
         * @tags Log File Archives
         * @name LogFileArchivesScopeLogFileTypeNodeScopeWorkerList
         * @summary Get log file collections by scope and type in a compressed file.
         * @request GET:/LogFileArchives(Scope='{Scope}',LogFileType='{LogFileType}',NodeScope='worker')
         * @secure
         */
        logFileArchivesScopeLogFileTypeNodeScopeWorkerList: (scope: ("all" | "latest")[], logFileType: ("http" | "trace")[], query?: {
            /**
             * Time after which the log files were modified<br>
             * Expected date format: yyyy-MM-dd'T'HH:mm:ss'Z'<br>
             * Example: ```2017-04-13T15:51:04Z```
             */
            ModifiedAfter?: string;
        }, params?: RequestParams) => Promise<HttpResponse<{
            d?: {
                results?: ComSapHciApiLogFileArchive[];
            };
        }, OdataError>>;
        /**
         * @description You can use the following request to download log file collections for a scope and type in a compressed file (zip format).
         *
         * @tags Log File Archives
         * @name ValueList
         * @summary Download log file collections.
         * @request GET:/LogFileArchives(Scope='{Scope}',LogFileType='{LogFileType}',NodeScope='worker')/$value
         * @secure
         */
        valueList: (scope: ("all" | "latest")[], logFileType: ("http" | "trace")[], query?: {
            /**
             * Time after which the log files were modified<br>
             * Expected date format: yyyy-MM-dd'T'HH:mm:ss'Z'<br>
             * Example: ```2017-04-13T15:51:04Z```
             */
            ModifiedAfter?: string;
        }, params?: RequestParams) => Promise<HttpResponse<File, OdataError>>;
    };
    logFiles: {
        /**
         * @description You can use the following request to get all log files.
         *
         * @tags Log Files
         * @name LogFilesList
         * @summary Get all log files.
         * @request GET:/LogFiles
         * @secure
         */
        logFilesList: (query?: {
            /**
             * Show only the first n items.
             * @min 0
             */
            $top?: number;
            /**
             * Skip the first n items.
             * @min 0
             */
            $skip?: number;
            /**
             * Filter items by property values.<br>
             * Examples:
             * * ```NodeScope eq 'worker'```
             * * ```LogFileType eq 'http'```
             * * ```LogFileType eq 'trace'```
             * * ```NodeScope eq 'worker' and LogFileType eq 'http'```
             */
            $filter?: string;
            /**
             * Order items by property values.
             * @uniqueItems true
             */
            $orderby?: ("Name" | "Name desc" | "Application" | "Application desc" | "LastModified" | "LastModified desc" | "ContentType" | "ContentType desc" | "LogFileType" | "LogFileType desc" | "NodeScope" | "NodeScope desc")[];
            /**
             * Select properties to be returned.
             * @uniqueItems true
             */
            $select?: ("Name" | "Application" | "LastModified" | "ContentType" | "LogFileType" | "NodeScope")[];
        }, params?: RequestParams) => Promise<HttpResponse<{
            d?: {
                results?: ComSapHciApiLogFile[];
            };
        }, OdataError>>;
    };
    logFilesNameNameApplicationApplication: {
        /**
         * @description You can use the following request to get log file by name and application, which could be downloaded via OData $value option.
         *
         * @tags Log Files
         * @name LogFilesNameApplicationList
         * @summary Get log files by name and application.
         * @request GET:/LogFiles(Name='{Name}',Application='{Application}')
         * @secure
         */
        logFilesNameApplicationList: (name: string, application: string, params?: RequestParams) => Promise<HttpResponse<{
            d?: {
                results?: ComSapHciApiLogFile[];
            };
        }, OdataError>>;
        /**
         * @description You can use the following request to download log file by name and application.
         *
         * @tags Log Files
         * @name ValueList
         * @summary Download log file.
         * @request GET:/LogFiles(Name='{Name}',Application='{Application}')/$value
         * @secure
         */
        valueList: (name: string, application: string, params?: RequestParams) => Promise<HttpResponse<File, OdataError>>;
    };
}
export {};
