import { FetchResponse, ServiceRequester } from "../service-requester";
import { ListItemsResponse, Rule, CreateRulePayload, ActionType, Action, CreateActionPayload, QueryParams, EvaluationPayload, CreateEndpointMetadataUpdatedTriggerPayload, CreateActionResponse, CreateTriggerResponse, TriggerType, TriggerTypesResponse, RuleTrigger, RulesQueryParams, TriggerBody, AttachActionsPayload, AttachedRuleActionsResponse, TracesResponse, TracesRequestOptions, UpdateAlertStatusPayload, AlertHistoryResponse, GetStatusHistoryParams, AlertsResponse, AlertsRequestParams, UpdateAlertStatusParams, AlertEntityType, AlertTypesResponse, CreateTriggerPayload, AlertSettingsListResponse, AlertSettingsRequestParams, CreateAlertSettingsPayload, AlertSettingsItemResponse, UpdateAlertSettingsPayload, CreateSecretBody, SecretsResponse, SecretsQueryParams, SecretBody, DeleteTracesQueryParams, Alert, DeleteAlertQueryParams, CreateSnippetBody, SnippetsQueryParams, SnippetsResponse, AlertsSearchRequestPayload, AlertMetadataKeyTypes, AlertMetadataKeysResponse } from "./types";
export declare class RuleEngineClient {
    private http;
    constructor(urlPrefix: string, serviceRequester?: ServiceRequester);
    getRules(params?: RulesQueryParams): Promise<FetchResponse<ListItemsResponse<Rule[]>>>;
    getRule(ruleId: string): Promise<FetchResponse<Rule>>;
    deleteRule(ruleId: string): Promise<FetchResponse<void>>;
    createRule(payload: CreateRulePayload): Promise<FetchResponse<Rule>>;
    updateRule(ruleId: string, payload: CreateRulePayload): Promise<FetchResponse<void>>;
    evaluationRule(payload: EvaluationPayload): Promise<FetchResponse<Record<string, any>>>;
    executeRule(ruleId: string, payload?: any): Promise<FetchResponse<void>>;
    getRuleActions(ruleId: string): Promise<FetchResponse<AttachedRuleActionsResponse>>;
    setRuleActions(ruleId: string, actionType: ActionType, payload: AttachActionsPayload): Promise<FetchResponse<void>>;
    getActions(actionType: ActionType, query?: QueryParams): Promise<FetchResponse<ListItemsResponse<Action[]>>>;
    getAction(actionType: ActionType, actionId: string): Promise<FetchResponse<Action>>;
    deleteAction(actionType: ActionType, actionId: string): Promise<FetchResponse<void>>;
    createAction(actionType: ActionType, payload: CreateActionPayload): Promise<FetchResponse<CreateActionResponse>>;
    updateAction(actionType: ActionType, actionId: string, payload: CreateActionPayload): Promise<FetchResponse<void>>;
    createEndpointMetadataUpdateTrigger(trigger: CreateEndpointMetadataUpdatedTriggerPayload): Promise<FetchResponse<CreateTriggerResponse>>;
    createTriggerType(type: TriggerType, trigger: Partial<CreateTriggerPayload>): Promise<FetchResponse<CreateTriggerResponse>>;
    getRuleTriggers(ruleId: string): Promise<FetchResponse<RuleTrigger[]>>;
    setRuleTriggers(ruleId: string, triggerType: TriggerType, triggers: string[]): Promise<FetchResponse<void>>;
    getTriggerTypes(type: TriggerType, search?: QueryParams): Promise<FetchResponse<TriggerTypesResponse>>;
    getTriggerType(type: TriggerType, triggerId: string): Promise<FetchResponse<TriggerBody>>;
    deleteTriggerType(type: TriggerType, triggerId: string): Promise<FetchResponse<void>>;
    updateTriggerType(type: TriggerType, triggerId: string, trigger: TriggerBody): Promise<FetchResponse<void>>;
    getTraces(options?: TracesRequestOptions): Promise<FetchResponse<TracesResponse>>;
    updateAlertAcknowledgement(alertId: string, params: UpdateAlertStatusParams, payload: UpdateAlertStatusPayload): Promise<FetchResponse<void>>;
    getAlerts(params: AlertsRequestParams): Promise<FetchResponse<AlertsResponse>>;
    searchAlerts(data: AlertsSearchRequestPayload): Promise<FetchResponse<AlertsResponse>>;
    getAlert(alertId: string): Promise<FetchResponse<Alert>>;
    getAlertsTypes(entityType: AlertEntityType): Promise<FetchResponse<AlertTypesResponse>>;
    getAlertHistory(alertId: string, params: GetStatusHistoryParams): Promise<FetchResponse<AlertHistoryResponse>>;
    getAlertSettings(params?: AlertSettingsRequestParams): Promise<FetchResponse<AlertSettingsListResponse>>;
    createAlertSettings(payload: CreateAlertSettingsPayload): Promise<FetchResponse<{
        id: string;
    }>>;
    updateAlertSettings(id: string, payload: UpdateAlertSettingsPayload): Promise<FetchResponse<void>>;
    getAlertSettingsById(alertSettingsId: string): Promise<FetchResponse<AlertSettingsItemResponse>>;
    deleteAlertSettings(alertSettingsId: string): Promise<FetchResponse<AlertSettingsItemResponse>>;
    createSecret(payload: CreateSecretBody): Promise<FetchResponse<{
        id: string;
    }>>;
    updateSecret(secretId: string, payload: CreateSecretBody): Promise<FetchResponse<void>>;
    deleteSecret(secretId: string): Promise<FetchResponse<void>>;
    getSecrets(params: SecretsQueryParams): Promise<FetchResponse<SecretsResponse>>;
    getSecret(secretId: string): Promise<FetchResponse<SecretBody>>;
    createSnippet(payload: CreateSnippetBody): Promise<FetchResponse<{
        id: string;
    }>>;
    updateSnippet(snippetId: string, payload: CreateSnippetBody): Promise<FetchResponse<void>>;
    deleteSnippet(snippetId: string): Promise<FetchResponse<void>>;
    getSnippets(params: SnippetsQueryParams): Promise<FetchResponse<SnippetsResponse>>;
    deleteTraces(params?: DeleteTracesQueryParams): Promise<FetchResponse<void>>;
    deleteAlert(alertId: string, params: DeleteAlertQueryParams): Promise<FetchResponse<void>>;
    getAlertMetadataKeys(metadataKeysType: AlertMetadataKeyTypes): Promise<FetchResponse<AlertMetadataKeysResponse>>;
}
