import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * This resource allows you to configure metrics for your Statsig project.
 *
 * To learn more about metrics, see [Metrics Documentation](https://docs.statsig.com/metrics/101)
 *
 * To learn more about the API powering this resource, see [Metrics API Documentation](https://docs.statsig.com/console-api/metrics)
 *
 * > Note: [Warehouse Native](https://docs.statsig.com/statsig-warehouse-native/introduction/) metrics can only be used in Warehouse Native projects
 */
export declare class Metric extends pulumi.CustomResource {
    /**
     * Get an existing Metric resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: MetricState, opts?: pulumi.CustomResourceOptions): Metric;
    /**
     * Returns true if the given object is an instance of Metric.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Metric;
    /**
     * Custom time window end date in days since exposure.
     */
    readonly customRollUpEnd: pulumi.Output<number>;
    /**
     * Custom time window start date in days since exposure.
     */
    readonly customRollUpStart: pulumi.Output<number>;
    /**
     * A description of the new metric, providing context and purpose.
     */
    readonly description: pulumi.Output<string>;
    /**
     * Indicates the desired change direction for the metric. Use "increase" for positive changes and "decrease" for negative changes.
     */
    readonly directionality: pulumi.Output<string>;
    /**
     * Skips persisting the metric (used to validate that inputs are correct)
     */
    readonly dryRun: pulumi.Output<boolean>;
    /**
     * Specifies whether to count events or distinct users for the funnel metric.
     */
    readonly funnelCountDistinct: pulumi.Output<string>;
    /**
     * List of events used to create funnel metrics.
     */
    readonly funnelEventLists: pulumi.Output<outputs.MetricFunnelEventList[]>;
    /**
     * Indicates whether the metric is permanent and should not be deleted.
     */
    readonly isPermanent: pulumi.Output<boolean>;
    /**
     * Set to true to make the metric definition editable only from the Console API.
     */
    readonly isReadOnly: pulumi.Output<boolean>;
    /**
     * Marks the metric as verified for internal trustworthiness.
     */
    readonly isVerified: pulumi.Output<boolean>;
    /**
     * List of input metrics used to calculate the new metric for composite types.
     */
    readonly metricComponentMetrics: pulumi.Output<outputs.MetricMetricComponentMetric[]>;
    /**
     * An array of event definitions used to compute the metric.
     */
    readonly metricEvents: pulumi.Output<outputs.MetricMetricEvent[]>;
    /**
     * The name of the new metric, which identifies it within the system.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Time window for the metric rollup. Specify "custom" for a customized time window.
     */
    readonly rollupTimeWindow: pulumi.Output<string>;
    /**
     * Tags associated with the metric for categorization and searchability.
     */
    readonly tags: pulumi.Output<string[]>;
    /**
     * The team associated with the metric, applicable for enterprise environments.
     */
    readonly team: pulumi.Output<string>;
    /**
     * The team ID associated with the metric, applicable for enterprise environments.
     */
    readonly teamId: pulumi.Output<string>;
    /**
     * The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.
     */
    readonly type: pulumi.Output<string>;
    /**
     * Array of unit types associated with the metric, such as stableID or userID.
     */
    readonly unitTypes: pulumi.Output<string[]>;
    /**
     * Defines warehouse native metrics for advanced configurations.
     */
    readonly warehouseNative: pulumi.Output<outputs.MetricWarehouseNative>;
    /**
     * Create a Metric resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: MetricArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Metric resources.
 */
export interface MetricState {
    /**
     * Custom time window end date in days since exposure.
     */
    customRollUpEnd?: pulumi.Input<number>;
    /**
     * Custom time window start date in days since exposure.
     */
    customRollUpStart?: pulumi.Input<number>;
    /**
     * A description of the new metric, providing context and purpose.
     */
    description?: pulumi.Input<string>;
    /**
     * Indicates the desired change direction for the metric. Use "increase" for positive changes and "decrease" for negative changes.
     */
    directionality?: pulumi.Input<string>;
    /**
     * Skips persisting the metric (used to validate that inputs are correct)
     */
    dryRun?: pulumi.Input<boolean>;
    /**
     * Specifies whether to count events or distinct users for the funnel metric.
     */
    funnelCountDistinct?: pulumi.Input<string>;
    /**
     * List of events used to create funnel metrics.
     */
    funnelEventLists?: pulumi.Input<pulumi.Input<inputs.MetricFunnelEventList>[]>;
    /**
     * Indicates whether the metric is permanent and should not be deleted.
     */
    isPermanent?: pulumi.Input<boolean>;
    /**
     * Set to true to make the metric definition editable only from the Console API.
     */
    isReadOnly?: pulumi.Input<boolean>;
    /**
     * Marks the metric as verified for internal trustworthiness.
     */
    isVerified?: pulumi.Input<boolean>;
    /**
     * List of input metrics used to calculate the new metric for composite types.
     */
    metricComponentMetrics?: pulumi.Input<pulumi.Input<inputs.MetricMetricComponentMetric>[]>;
    /**
     * An array of event definitions used to compute the metric.
     */
    metricEvents?: pulumi.Input<pulumi.Input<inputs.MetricMetricEvent>[]>;
    /**
     * The name of the new metric, which identifies it within the system.
     */
    name?: pulumi.Input<string>;
    /**
     * Time window for the metric rollup. Specify "custom" for a customized time window.
     */
    rollupTimeWindow?: pulumi.Input<string>;
    /**
     * Tags associated with the metric for categorization and searchability.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The team associated with the metric, applicable for enterprise environments.
     */
    team?: pulumi.Input<string>;
    /**
     * The team ID associated with the metric, applicable for enterprise environments.
     */
    teamId?: pulumi.Input<string>;
    /**
     * The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.
     */
    type?: pulumi.Input<string>;
    /**
     * Array of unit types associated with the metric, such as stableID or userID.
     */
    unitTypes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Defines warehouse native metrics for advanced configurations.
     */
    warehouseNative?: pulumi.Input<inputs.MetricWarehouseNative>;
}
/**
 * The set of arguments for constructing a Metric resource.
 */
export interface MetricArgs {
    /**
     * Custom time window end date in days since exposure.
     */
    customRollUpEnd?: pulumi.Input<number>;
    /**
     * Custom time window start date in days since exposure.
     */
    customRollUpStart?: pulumi.Input<number>;
    /**
     * A description of the new metric, providing context and purpose.
     */
    description?: pulumi.Input<string>;
    /**
     * Indicates the desired change direction for the metric. Use "increase" for positive changes and "decrease" for negative changes.
     */
    directionality?: pulumi.Input<string>;
    /**
     * Skips persisting the metric (used to validate that inputs are correct)
     */
    dryRun?: pulumi.Input<boolean>;
    /**
     * Specifies whether to count events or distinct users for the funnel metric.
     */
    funnelCountDistinct?: pulumi.Input<string>;
    /**
     * List of events used to create funnel metrics.
     */
    funnelEventLists?: pulumi.Input<pulumi.Input<inputs.MetricFunnelEventList>[]>;
    /**
     * Indicates whether the metric is permanent and should not be deleted.
     */
    isPermanent?: pulumi.Input<boolean>;
    /**
     * Set to true to make the metric definition editable only from the Console API.
     */
    isReadOnly?: pulumi.Input<boolean>;
    /**
     * Marks the metric as verified for internal trustworthiness.
     */
    isVerified?: pulumi.Input<boolean>;
    /**
     * List of input metrics used to calculate the new metric for composite types.
     */
    metricComponentMetrics?: pulumi.Input<pulumi.Input<inputs.MetricMetricComponentMetric>[]>;
    /**
     * An array of event definitions used to compute the metric.
     */
    metricEvents?: pulumi.Input<pulumi.Input<inputs.MetricMetricEvent>[]>;
    /**
     * The name of the new metric, which identifies it within the system.
     */
    name?: pulumi.Input<string>;
    /**
     * Time window for the metric rollup. Specify "custom" for a customized time window.
     */
    rollupTimeWindow?: pulumi.Input<string>;
    /**
     * Tags associated with the metric for categorization and searchability.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The team associated with the metric, applicable for enterprise environments.
     */
    team?: pulumi.Input<string>;
    /**
     * The team ID associated with the metric, applicable for enterprise environments.
     */
    teamId?: pulumi.Input<string>;
    /**
     * The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.
     */
    type: pulumi.Input<string>;
    /**
     * Array of unit types associated with the metric, such as stableID or userID.
     */
    unitTypes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Defines warehouse native metrics for advanced configurations.
     */
    warehouseNative?: pulumi.Input<inputs.MetricWarehouseNative>;
}
