import type { Mastra } from '@mastra/core';
import type { MastraCompositeStore, ObservabilityStorage } from '@mastra/core/storage';
import type { ServerRoute } from '../server-adapter/routes/index.js';
export declare const NEW_OBSERVABILITY_UPGRADE_MESSAGE = "New observability endpoints require a newer @mastra/core. Please upgrade.";
/** Retrieves MastraCompositeStore or throws 500 if unavailable. */
export declare function getStorage(mastra: Mastra): MastraCompositeStore;
/** Retrieves the observability storage domain or throws 500 if unavailable. */
export declare function getObservabilityStore(mastra: Mastra): Promise<ObservabilityStorage>;
export interface RouteDetails {
    method: ServerRoute['method'];
    path: `/${string}`;
    summary: string;
    description: string;
    requiresPermission?: ServerRoute['requiresPermission'];
}
export declare const NEW_ROUTE_DEFS: {
    readonly LIST_LOGS: {
        readonly method: "GET";
        readonly path: "/observability/logs";
        readonly summary: "List logs";
        readonly description: "Returns a paginated list of logs with optional filtering and sorting";
    };
    readonly LIST_SCORES: {
        readonly method: "GET";
        readonly path: "/observability/scores";
        readonly summary: "List scores";
        readonly description: "Returns a paginated list of scores with optional filtering and sorting";
    };
    readonly CREATE_SCORE: {
        readonly method: "POST";
        readonly path: "/observability/scores";
        readonly summary: "Create a score";
        readonly description: "Creates a single score record in the observability store";
    };
    readonly GET_SCORE: {
        readonly method: "GET";
        readonly path: "/observability/scores/:scoreId";
        readonly summary: "Get score";
        readonly description: "Returns a single score by scoreId";
    };
    readonly GET_SCORE_AGGREGATE: {
        readonly method: "POST";
        readonly path: "/observability/scores/aggregate";
        readonly summary: "Get score aggregate";
        readonly description: "Returns an aggregated score value with optional period-over-period comparison";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_SCORE_BREAKDOWN: {
        readonly method: "POST";
        readonly path: "/observability/scores/breakdown";
        readonly summary: "Get score breakdown";
        readonly description: "Returns score values grouped by specified dimensions";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_SCORE_TIME_SERIES: {
        readonly method: "POST";
        readonly path: "/observability/scores/timeseries";
        readonly summary: "Get score time series";
        readonly description: "Returns score values bucketed by time interval with optional grouping";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_SCORE_PERCENTILES: {
        readonly method: "POST";
        readonly path: "/observability/scores/percentiles";
        readonly summary: "Get score percentiles";
        readonly description: "Returns percentile values for a score bucketed by time interval";
        readonly requiresPermission: "observability:read";
    };
    readonly LIST_FEEDBACK: {
        readonly method: "GET";
        readonly path: "/observability/feedback";
        readonly summary: "List feedback";
        readonly description: "Returns a paginated list of feedback with optional filtering and sorting";
    };
    readonly CREATE_FEEDBACK: {
        readonly method: "POST";
        readonly path: "/observability/feedback";
        readonly summary: "Create feedback";
        readonly description: "Creates a single feedback record in the observability store";
    };
    readonly GET_FEEDBACK_AGGREGATE: {
        readonly method: "POST";
        readonly path: "/observability/feedback/aggregate";
        readonly summary: "Get feedback aggregate";
        readonly description: "Returns an aggregated numeric feedback value with optional period-over-period comparison";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_FEEDBACK_BREAKDOWN: {
        readonly method: "POST";
        readonly path: "/observability/feedback/breakdown";
        readonly summary: "Get feedback breakdown";
        readonly description: "Returns numeric feedback values grouped by specified dimensions";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_FEEDBACK_TIME_SERIES: {
        readonly method: "POST";
        readonly path: "/observability/feedback/timeseries";
        readonly summary: "Get feedback time series";
        readonly description: "Returns numeric feedback values bucketed by time interval with optional grouping";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_FEEDBACK_PERCENTILES: {
        readonly method: "POST";
        readonly path: "/observability/feedback/percentiles";
        readonly summary: "Get feedback percentiles";
        readonly description: "Returns percentile values for numeric feedback bucketed by time interval";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_METRIC_AGGREGATE: {
        readonly method: "POST";
        readonly path: "/observability/metrics/aggregate";
        readonly summary: "Get metric aggregate";
        readonly description: "Returns an aggregated metric value with optional period-over-period comparison";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_METRIC_BREAKDOWN: {
        readonly method: "POST";
        readonly path: "/observability/metrics/breakdown";
        readonly summary: "Get metric breakdown";
        readonly description: "Returns metric values grouped by specified dimensions";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_METRIC_TIME_SERIES: {
        readonly method: "POST";
        readonly path: "/observability/metrics/timeseries";
        readonly summary: "Get metric time series";
        readonly description: "Returns metric values bucketed by time interval with optional grouping";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_METRIC_PERCENTILES: {
        readonly method: "POST";
        readonly path: "/observability/metrics/percentiles";
        readonly summary: "Get metric percentiles";
        readonly description: "Returns percentile values for a metric bucketed by time interval";
        readonly requiresPermission: "observability:read";
    };
    readonly GET_METRIC_NAMES: {
        readonly method: "GET";
        readonly path: "/observability/discovery/metric-names";
        readonly summary: "Get metric names";
        readonly description: "Returns distinct metric names with optional prefix filtering";
    };
    readonly GET_METRIC_LABEL_KEYS: {
        readonly method: "GET";
        readonly path: "/observability/discovery/metric-label-keys";
        readonly summary: "Get metric label keys";
        readonly description: "Returns distinct label keys for a given metric";
    };
    readonly GET_METRIC_LABEL_VALUES: {
        readonly method: "GET";
        readonly path: "/observability/discovery/metric-label-values";
        readonly summary: "Get label values";
        readonly description: "Returns distinct values for a given metric label key";
    };
    readonly GET_ENTITY_TYPES: {
        readonly method: "GET";
        readonly path: "/observability/discovery/entity-types";
        readonly summary: "Get entity types";
        readonly description: "Returns distinct entity types from observability data";
    };
    readonly GET_ENTITY_NAMES: {
        readonly method: "GET";
        readonly path: "/observability/discovery/entity-names";
        readonly summary: "Get entity names";
        readonly description: "Returns distinct entity names with optional type filtering";
    };
    readonly GET_SERVICE_NAMES: {
        readonly method: "GET";
        readonly path: "/observability/discovery/service-names";
        readonly summary: "Get service names";
        readonly description: "Returns distinct service names from observability data";
    };
    readonly GET_ENVIRONMENTS: {
        readonly method: "GET";
        readonly path: "/observability/discovery/environments";
        readonly summary: "Get environments";
        readonly description: "Returns distinct environments from observability data";
    };
    readonly GET_TAGS: {
        readonly method: "GET";
        readonly path: "/observability/discovery/tags";
        readonly summary: "Get tags";
        readonly description: "Returns distinct tags with optional entity type filtering";
    };
};
export type NewRoutesKey = keyof typeof NEW_ROUTE_DEFS;
export type NewRoutesDefinitions = (typeof NEW_ROUTE_DEFS)[NewRoutesKey];
//# sourceMappingURL=observability-shared.d.ts.map