import type { UmbLogLevelCounts } from '../../types.js';
import type { UmbLogMessagesDataSource, UmbLogSearchDataSource } from './index.js';
import { LogLevelModel, type DirectionModel, type SavedLogSearchResponseModel } from '../../../core/backend-api/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import type { UmbDataSourceResponse } from '../../../core/repository/index.js';
/**
 * A data source for the log saved searches
 * @class UmbLogSearchesServerDataSource
 * @implements {TemplateDetailDataSource}
 */
export declare class UmbLogSearchesServerDataSource implements UmbLogSearchDataSource {
    #private;
    /**
     * Creates an instance of UmbLogSearchesServerDataSource.
     * @param {UmbControllerHost} host - The controller host for this controller to be appended to
     * @memberof UmbLogSearchesServerDataSource
     */
    constructor(host: UmbControllerHost);
    /**
     * Grabs all the log viewer saved searches from the server
     * @param {{ skip?: number; take?: number }} { skip = 0, take = 100 }
     * @returns {*}
     * @memberof UmbLogSearchesServerDataSource
     */
    getAllSavedSearches({ skip, take }: {
        skip?: number;
        take?: number;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: import("../../../core/backend-api/index.js").PagedSavedLogSearchResponseModel;
        request: Request;
        response: Response;
    }>>;
    /**
     * Get a log viewer saved search by name from the server
     * @param {{ name: string }} { name }
     * @returns {*}
     * @memberof UmbLogSearchesServerDataSource
     */
    getSavedSearchByName({ name }: {
        name: string;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: SavedLogSearchResponseModel;
        request: Request;
        response: Response;
    }>>;
    /**
     *	Post a new log viewer saved search to the server
     * @param {{ body?: SavedLogSearch }} { body }
     * @returns {*}
     * @memberof UmbLogSearchesServerDataSource
     */
    postLogViewerSavedSearch({ name, query }: SavedLogSearchResponseModel): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: unknown;
        request: Request;
        response: Response;
    }>>;
    /**
     * Remove a log viewer saved search by name from the server
     * @param {{ name: string }} { name }
     * @returns {*}
     * @memberof UmbLogSearchesServerDataSource
     */
    deleteSavedSearchByName({ name }: {
        name: string;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: unknown;
        request: Request;
        response: Response;
    }>>;
}
/**
 * A data source for the log messages and levels
 * @class UmbLogMessagesServerDataSource
 * @implements {UmbLogMessagesDataSource}
 */
export declare class UmbLogMessagesServerDataSource implements UmbLogMessagesDataSource {
    #private;
    /**
     * Creates an instance of UmbLogMessagesServerDataSource.
     * @param {UmbControllerHost} host - The controller host for this controller to be appended to
     * @memberof UmbLogMessagesServerDataSource
     */
    constructor(host: UmbControllerHost);
    /**
     * Grabs all the loggers from the server
     * @param {{ skip?: number; take?: number }} { skip = 0, take = 100 }
     * @returns {*}
     * @memberof UmbLogMessagesServerDataSource
     */
    getLogViewerLevel({ skip, take }: {
        skip?: number;
        take?: number;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: import("../../../core/backend-api/index.js").PagedLoggerResponseModel;
        request: Request;
        response: Response;
    }>>;
    /**
     * Grabs all the number of different log messages from the server
     * @param {{ skip?: number; take?: number }} { skip = 0, take = 100 }
     * @returns {*}
     * @memberof UmbLogMessagesServerDataSource
     */
    getLogViewerLevelCount({ startDate, endDate, }: {
        startDate?: string;
        endDate?: string;
    }): Promise<UmbDataSourceResponse<UmbLogLevelCounts>>;
    /**
     *	Grabs all the log messages from the server
     * @param {{
     * 		skip?: number;
     * 		take?: number;
     * 		orderDirection?: DirectionModel;
     * 		filterExpression?: string;
     * 		logLevel?: Array<LogLevelModel>;
     * 		startDate?: string;
     * 		endDate?: string;
     * 	}} {
     * 		skip = 0,
     * 		take = 100,
     * 		orderDirection,
     * 		filterExpression,
     * 		logLevel,
     * 		startDate,
     * 		endDate,
     * 	}
     * @returns {*}
     * @memberof UmbLogMessagesServerDataSource
     */
    getLogViewerLogs({ skip, take, orderDirection, filterExpression, logLevel, startDate, endDate, }: {
        skip?: number;
        take?: number;
        orderDirection?: DirectionModel;
        filterExpression?: string;
        logLevel?: Array<LogLevelModel>;
        startDate?: string;
        endDate?: string;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: import("../../../core/backend-api/index.js").PagedLogMessageResponseModel;
        request: Request;
        response: Response;
    }>>;
    /**
     * Grabs all the log message templates from the server
     * @param {{
     * 		skip?: number;
     * 		take?: number;
     * 		startDate?: string;
     * 		endDate?: string;
     * 	}} {
     * 		skip,
     * 		take = 100,
     * 		startDate,
     * 		endDate,
     * 	}
     * @returns {*}
     * @memberof UmbLogMessagesServerDataSource
     */
    getLogViewerMessageTemplate({ skip, take, startDate, endDate, }: {
        skip?: number;
        take?: number;
        startDate?: string;
        endDate?: string;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: import("../../../core/backend-api/index.js").PagedLogTemplateResponseModel;
        request: Request;
        response: Response;
    }>>;
    getLogViewerValidateLogsSize({ startDate, endDate }: {
        startDate?: string;
        endDate?: string;
    }): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: unknown;
        request: Request;
        response: Response;
    }>>;
}
