export type FunnelStep = {
    stepOrder: number;
    eventName: string;
};
export declare const FUNNEL_DATE_PRESETS: readonly [{
    readonly value: "last_7_days";
    readonly label: "Last 7 days";
    readonly days: 7;
}, {
    readonly value: "last_14_days";
    readonly label: "Last 14 days";
    readonly days: 14;
}, {
    readonly value: "last_30_days";
    readonly label: "Last 30 days";
    readonly days: 30;
}, {
    readonly value: "last_90_days";
    readonly label: "Last 90 days";
    readonly days: 90;
}, {
    readonly value: "last_6_months";
    readonly label: "Last 6 months";
    readonly days: 180;
}, {
    readonly value: "last_12_months";
    readonly label: "Last 12 months";
    readonly days: 365;
}, {
    readonly value: "custom";
    readonly label: "Custom range";
    readonly days: null;
}];
export type FunnelDatePreset = (typeof FUNNEL_DATE_PRESETS)[number]['value'];
export type FunnelDateRange = {
    type: 'preset';
    preset: Exclude<FunnelDatePreset, 'custom'>;
} | {
    type: 'custom';
    start: string;
    end: string;
};
export type FunnelConversionWindowUnit = 'hours' | 'days' | 'weeks';
export type FunnelQueryRequest = {
    exploreName: string;
    timestampFieldId: string;
    userIdFieldId: string;
    eventNameFieldId: string;
    steps: FunnelStep[];
    dateRange: FunnelDateRange;
    conversionWindow?: {
        value: number;
        unit: FunnelConversionWindowUnit;
    };
    breakdownDimensionId?: string;
};
export declare function resolveFunnelDateRange(dateRange: FunnelDateRange): {
    start: Date;
    end: Date;
};
export type FunnelStepResult = {
    stepOrder: number;
    stepName: string;
    totalUsers: number;
    conversionRate: number;
    stepConversionRate: number;
    medianTimeToConvertSeconds: number | null;
    breakdownValue?: string;
};
export type FunnelQueryResult = {
    steps: FunnelStepResult[];
    sql: string;
};
export type ApiFunnelEventNamesResponse = {
    status: 'ok';
    results: string[];
};
export type ApiFunnelQueryResponse = {
    status: 'ok';
    results: FunnelQueryResult;
};
//# sourceMappingURL=funnel.d.ts.map