import type { Metric } from './write.ts';
import type { Conditions } from '../ResourceInterface.ts';
interface GetAnalyticsRequest {
    metric: string;
    start_time?: number;
    end_time?: number;
    get_attributes?: string[];
    coalesce_time?: boolean;
    conditions?: Conditions;
}
type GetAnalyticsResponse = Metric[];
export declare function getOp(req: GetAnalyticsRequest): Promise<GetAnalyticsResponse>;
interface GetAnalyticsOpts {
    getAttributes?: string[];
    startTime?: number;
    endTime?: number;
    coalesceTime?: boolean;
    additionalConditions?: Conditions;
}
export declare function get(metric: string, opts?: GetAnalyticsOpts): Promise<Metric[]>;
type MetricType = 'builtin' | 'custom';
interface ListMetricsRequest {
    metric_types: MetricType[];
    custom_metrics_window?: number;
}
type ListMetricsResponse = string[];
export declare function listMetricsOp(req: ListMetricsRequest): Promise<ListMetricsResponse>;
export declare function listMetrics(metricTypes?: MetricType[], customWindow?: number): Promise<string[]>;
interface DescribeMetricRequest {
    metric: string;
}
interface MetricDescription {
    name: string;
    type: string;
}
interface DescribeMetricResponse {
    attributes?: MetricDescription[];
}
export declare function describeMetricOp(req: DescribeMetricRequest): Promise<DescribeMetricResponse>;
export declare function describeMetric(metric: string): Promise<DescribeMetricResponse>;
export {};
