import { type DashboardAttributeFilterItem, type ICatalogDateAttribute, type IDashboardMeasureValueFilter, type ISeparators, type ObjRef } from "@gooddata/sdk-model";
import { type IUiListboxInteractiveItem } from "@gooddata/sdk-ui-kit";
import { type DeepReadonly, type IKdaDataPoint, type IKdaDefinition, type KdaPeriodType } from "./types.js";
export interface IKdaDateOptions {
    period: KdaPeriodType;
    dateAttribute?: ICatalogDateAttribute | null;
    range?: DeepReadonly<[IKdaDataPoint, IKdaDataPoint]>;
}
export type IKdaTrend = "up" | "down" | "all";
export interface IKdaItem {
    id: string;
    title: string;
    description: string;
    category: string;
    from: {
        value: number;
        date: string;
    };
    to: IKdaItem["from"];
    attribute: ObjRef;
    displayForm: ObjRef;
    formatValue: (value: number) => string;
    isSignificant: boolean;
    standardDeviation: number;
    mean: number;
}
export interface IKdaItemGroup {
    id: string;
    title: string;
    description: string;
    attribute: ObjRef;
    displayForm: ObjRef;
    significantDrivers: IKdaItem[];
    allDrivers: IKdaItem[];
}
export interface IKdaState {
    definition: DeepReadonly<IKdaDefinition> | null;
    fromValue: IKdaDataPoint | undefined;
    toValue: IKdaDataPoint | undefined;
    definitionStatus: KdaAsyncStatus;
    isMinimized: boolean;
    attributesDropdownOpen: boolean;
    addFilterDropdownOpen: boolean;
    trendDropdownOpen: boolean;
    separators?: ISeparators;
    selectedTrend: IKdaTrend;
    selectedItem: IUiListboxInteractiveItem<IKdaItem> | "summary";
    selectedStatus: KdaAsyncStatus;
    selectedError: Error | undefined;
    attributeFilters: DashboardAttributeFilterItem[];
    /**
     * Dashboard measure value filters propagated to the change analysis computation.
     * Not editable in the dialog UI — these flow through from the dashboard filter context.
     */
    measureValueFilters: IDashboardMeasureValueFilter[];
    items: IUiListboxInteractiveItem<IKdaItem>[];
    itemsStatus: KdaAsyncStatus;
    itemsError: Error | undefined;
    selectedAttributes: ObjRef[];
    relevantStatus: KdaAsyncStatus;
    relevantAttributes: ObjRef[];
    selectedUpdated: number;
    includeTags: string[] | undefined;
    excludeTags: string[] | undefined;
}
export type KdaAsyncStatus = "loading" | "success" | "error" | "pending";
//# sourceMappingURL=internalTypes.d.ts.map