import { AgingPeriod, Amount, COABalanceWithPercent, TimeframeTick } from '@zeniai/client-epic-state';
export interface LabeledTimeframeTick extends TimeframeTick {
    label: string;
}
export type ChartValueType = "actual" | "forecast";
export type ChartValueKey = `${string}_${ChartValueType}`;
export declare const getChartValueKey: (id: string, type: ChartValueType) => ChartValueKey;
export declare const getIDFromChartValueKey: (key: ChartValueKey) => string;
export interface ChartRecordByTimeSeries {
    record: Record<ChartValueKey, {
        amount?: Amount;
        percentValue?: number;
    }>;
    timeLabel: LabeledTimeframeTick;
}
export interface ChartData {
    /**
     * IMPORTANT:
     * `orderedKeys` should have ALL the unique IDs present in the complete timeseries record (recordByTimeseries).
     */
    orderedKeys: ChartValueKey[];
    /**
     * IMPORTANT:
     * For each of the `labeledTimeframeTick` in `timeseries`,
     * there should be a matching record in `recordByTimeseries` at the SAME index.
     */
    recordByTimeseries: ChartRecordByTimeSeries[];
    timeseries: LabeledTimeframeTick[];
}
export interface COABalanceWithKey {
    balance: COABalanceWithPercent;
    key: ChartValueKey;
}
export type AgingReportChartValueKey = `${string}_${AgingPeriod}`;
export interface ChartRecordByDuration {
    label: string;
    record: Record<AgingReportChartValueKey, {
        amount?: Amount;
        percentValue?: number;
    }>;
}
export interface AgingReportChartData {
    durationLabels: string[];
    orderedKeys: AgingReportChartValueKey[];
    recordByDurations: ChartRecordByDuration[];
}
export declare const getAgingReportChartValueKey: (key: string, period: AgingPeriod) => AgingReportChartValueKey;
export declare const getAgingReportIDFromAgingReportChartValueKey: (key: AgingReportChartValueKey) => string;
export declare const getAgingPeriodFromAgingReportChartValueKey: (key: AgingReportChartValueKey) => "current_due" | "due_1-30_days" | "due_31-60_days" | "due_61-90_days" | "due_over_90_days";
