import { type DashboardAttributeFilterItem, type IDashboardAttributeFilter, type IDashboardAttributeFilterConfig, type IDashboardDateFilter, type IDashboardDateFilterConfig, type IDashboardFilterView, type IDashboardMeasureValueFilter, type IFilterContextDefinition, type MeasureValueFilterCondition, type ObjRef } from "@gooddata/sdk-model";
import { type DashboardContext } from "../types/commonTypes.js";
import { type DashboardEventBody, type IDashboardEvent } from "./base.js";
/**
 * Payload of the {@link DashboardDateFilterSelectionChanged} event.
 *
 * @remarks
 *
 * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors
 * – those allow you to convert the `filter` object to an {@link @gooddata/sdk-model#IDateFilter} instance you can use
 * with visualizations, filter UI components and so on.
 *
 * @public
 */
export type DashboardDateFilterSelectionChangedPayload = {
    /**
     * Object with changed date filter selection.
     */
    readonly filter: IDashboardDateFilter | undefined;
    /**
     * Optional local identifier of the new selected date filter option.
     */
    readonly dateFilterOptionLocalId?: string;
};
/**
 * This event is emitted after the dashboard's date filter selection is changed.
 *
 * @remarks
 *
 * See also {@link dashboardDateFilterToDateFilterByWidget} and {@link dashboardDateFilterToDateFilterByDateDataSet} convertors
 * – those allow you to convert the `filter` in the event payload to an {@link @gooddata/sdk-model#IDateFilter} instance you can use
 * with visualizations, filter UI components and so on.
 *
 * @public
 */
export type DashboardDateFilterSelectionChanged = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.SELECTION_CHANGED";
    readonly payload: DashboardDateFilterSelectionChangedPayload;
};
export declare function dateFilterChanged(ctx: DashboardContext, filter: IDashboardDateFilter | undefined, dateFilterOptionLocalId?: string, correlationId?: string): DashboardDateFilterSelectionChanged;
/**
 * Tests whether the provided object is an instance of {@link DashboardDateFilterSelectionChanged}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardDateFilterSelectionChanged: (obj: unknown) => obj is DashboardDateFilterSelectionChanged;
/**
 * Payload of the {@link IDashboardAttributeFilterAdded} event.
 * @beta
 */
export interface IDashboardAttributeFilterAddedPayload {
    /**
     * Definition of the created attribute filter. The filter's local identifier can be used in subsequent
     * commands to identify this filter.
     */
    readonly added: IDashboardAttributeFilter;
    /**
     * Zero-based index indicating the position of the attribute filter among the other filters.
     */
    readonly index: number;
}
/**
 * This event is emitted after a new dashboard attribute filter is successfully added into dashboard's
 * filters.
 *
 * @beta
 */
export interface IDashboardAttributeFilterAdded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADDED";
    readonly payload: IDashboardAttributeFilterAddedPayload;
}
export declare function attributeFilterAdded(ctx: DashboardContext, added: IDashboardAttributeFilter, index: number, correlationId?: string): IDashboardAttributeFilterAdded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterAdded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterAdded: (obj: unknown) => obj is IDashboardAttributeFilterAdded;
/**
 * Payload of the {@link IDashboardAttributeFilterRemoved} event.
 * @beta
 */
export interface IDashboardAttributeFilterRemovedPayload {
    /**
     * The dashboard attribute filter that has been removed.
     */
    readonly removed: DashboardAttributeFilterItem;
    /**
     * If the removed filter figured as a parent filter for some other filters, then
     * those children have lost their parent - the relationship was removed.
     *
     * If any children filters were impacted by the removal, their new definition that does
     * not include the parent relationship is included here.
     */
    readonly children?: ReadonlyArray<DashboardAttributeFilterItem>;
}
/**
 * This event is emitted after a dashboard attribute filter is successfully removed.
 *
 * If the removed filter figured as a parent to one or more child filters, then the removal
 * also cleaned up the parent relationship.
 *
 * @beta
 */
export interface IDashboardAttributeFilterRemoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVED";
    readonly payload: IDashboardAttributeFilterRemovedPayload;
}
export declare function attributeFilterRemoved(ctx: DashboardContext, removed: DashboardAttributeFilterItem, children?: DashboardAttributeFilterItem[], correlationId?: string): IDashboardAttributeFilterRemoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterRemoved}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterRemoved: (obj: unknown) => obj is IDashboardAttributeFilterRemoved;
/**
 * Payload of the {@link IDashboardAttributeFilterMoved} event.
 * @beta
 */
export interface IDashboardAttributeFilterMovedPayload {
    /**
     * Definition of the dashboard attribute filter that was moved.
     */
    readonly moved: DashboardAttributeFilterItem;
    /**
     * The original position of the filter.
     */
    readonly fromIndex: number;
    /**
     * New absolute position of the filter.
     */
    readonly toIndex: number;
}
/**
 * This event is emitted after a dashboard attribute filter is moved from one position in the filter bar
 * to a new position
 *
 * @beta
 */
export interface IDashboardAttributeFilterMoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVED";
    readonly payload: IDashboardAttributeFilterMovedPayload;
}
export declare function attributeFilterMoved(ctx: DashboardContext, moved: DashboardAttributeFilterItem, fromIndex: number, toIndex: number, correlationId?: string): IDashboardAttributeFilterMoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterMoved}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterMoved: (obj: unknown) => obj is IDashboardAttributeFilterMoved;
/**
 * Payload of the {@link DashboardAttributeFilterSelectionChanged} event.
 *
 * @remarks
 *
 * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
 * object to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations,
 * filter UI components and so on.
 *
 * @public
 */
export type DashboardAttributeFilterSelectionChangedPayload = {
    /**
     * The update definition of the dashboard attribute filter.
     *
     * The attribute elements and/or the negativeSelection indicator values have changed.
     */
    readonly filter: IDashboardAttributeFilter;
};
/**
 * This event is emitted after new elements are selected and applied in an attribute filter.
 *
 * @remarks
 *
 * See also {@link dashboardAttributeFilterToAttributeFilter} convertor – this allows you to convert the `filter`
 * in the event payload to an {@link @gooddata/sdk-model#IAttributeFilter} instance you can use with visualizations,
 * filter UI components and so on.
 *
 * @public
 */
export type DashboardAttributeFilterSelectionChanged = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_CHANGED";
    readonly payload: DashboardAttributeFilterSelectionChangedPayload;
};
export declare function attributeFilterSelectionChanged(ctx: DashboardContext, filter: IDashboardAttributeFilter, correlationId?: string): DashboardAttributeFilterSelectionChanged;
/**
 * Tests whether the provided object is an instance of {@link DashboardAttributeFilterSelectionChanged}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardAttributeFilterSelectionChanged: (obj: unknown) => obj is DashboardAttributeFilterSelectionChanged;
/**
 * Payload of the {@link DashboardAttributeFilterItemSelectionReplaced} event.
 *
 * @public
 */
export type DashboardAttributeFilterItemSelectionReplacedPayload = {
    /**
     * The updated definition of the dashboard attribute filter item.
     *
     * This can be any attribute filter type: element-based, arbitrary text, or match text filter.
     */
    readonly filter: DashboardAttributeFilterItem;
};
/**
 * This event is emitted after an attribute filter item's selection is replaced.
 *
 * @remarks
 * Unlike {@link DashboardAttributeFilterSelectionChanged}, this event supports all attribute filter
 * types including text filters (arbitrary and match).
 *
 * @public
 */
export type DashboardAttributeFilterItemSelectionReplaced = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.SELECTION_REPLACED";
    readonly payload: DashboardAttributeFilterItemSelectionReplacedPayload;
};
export declare function attributeFilterItemSelectionReplaced(ctx: DashboardContext, filter: DashboardAttributeFilterItem, correlationId?: string): DashboardAttributeFilterItemSelectionReplaced;
/**
 * Tests whether the provided object is an instance of {@link DashboardAttributeFilterItemSelectionReplaced}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardAttributeFilterItemSelectionReplaced: (obj: unknown) => obj is DashboardAttributeFilterItemSelectionReplaced;
/**
 * Payload of the {@link IDashboardAttributeFilterParentChanged} event.
 * @beta
 */
export interface IDashboardAttributeFilterParentChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of parents represents the new state.
     */
    readonly filter: DashboardAttributeFilterItem;
}
/**
 * This event is emitted after the parent relationships of a filter change.
 *
 * @beta
 */
export interface IDashboardAttributeFilterParentChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.PARENT_CHANGED";
    readonly payload: IDashboardAttributeFilterParentChangedPayload;
}
export declare function attributeFilterParentChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem, correlationId?: string): IDashboardAttributeFilterParentChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterParentChanged}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterParentChanged: (obj: unknown) => obj is IDashboardAttributeFilterParentChanged;
/**
 * Payload of the {@link IDashboardAttributeTitleChanged} event.
 * @beta
 */
export interface IDashboardAttributeTitleChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of parents represents the new state.
     */
    readonly filter: DashboardAttributeFilterItem;
}
/**
 * This event is emitted when the attribute filter title change.
 *
 * @beta
 */
export interface IDashboardAttributeTitleChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.TITLE_CHANGED";
    readonly payload: IDashboardAttributeTitleChangedPayload;
}
export declare function attributeDisplayTitleChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem, correlationId?: string): IDashboardAttributeTitleChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeTitleChanged}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterTitleChanged: (obj: unknown) => obj is IDashboardAttributeTitleChanged;
export interface IDashboardAttributeDisplayFormChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of parents represents the new state.
     */
    readonly filter: DashboardAttributeFilterItem;
}
export interface IDashboardAttributeDisplayFormChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.DISPLAY_FORM_CHANGED";
    readonly payload: IDashboardAttributeDisplayFormChangedPayload;
}
export declare function attributeDisplayFormChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem, correlationId?: string): IDashboardAttributeDisplayFormChanged;
/**
 * Payload of the {@link IDashboardAttributeSelectionModeChanged} event.
 *
 * @beta
 */
export interface IDashboardAttributeSelectionModeChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of selection mode represents the new state.
     * For text filters (arbitrary, match), selection mode has no effect.
     */
    readonly filter: DashboardAttributeFilterItem;
}
/**
 * This event is emitted when the attribute filter selection mode is change.
 *
 * @beta
 */
export interface IDashboardAttributeSelectionModeChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.ATTRIBUTE_FILTER.SELECTION_MODE_CHANGED";
    readonly payload: IDashboardAttributeSelectionModeChangedPayload;
}
export declare function attributeSelectionModeChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem, correlationId?: string): IDashboardAttributeSelectionModeChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeSelectionModeChanged}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardAttributeFilterSelectionModeChanged: (obj: unknown) => obj is IDashboardAttributeSelectionModeChanged;
/**
 * Payload of the {@link isDashboardAttributeFilterConfigModeChanged} event.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigModeChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of mode represents the new state.
     */
    readonly filter: DashboardAttributeFilterItem;
}
/**
 * This event is emitted when the attribute filter mode is change.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigModeChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.MODE_CHANGED";
    readonly payload: IDashboardAttributeFilterConfigModeChangedPayload;
}
export declare function dashboardAttributeConfigModeChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem): IDashboardAttributeFilterConfigModeChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterConfigModeChanged}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardAttributeFilterConfigModeChanged: (obj: unknown) => obj is IDashboardAttributeFilterConfigModeChanged;
/**
 * Payload of the {@link isDashboardAttributeFilterConfigDisplayAsLabelChanged} event.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigDisplayAsLabelChangedPayload {
    /**
     * The definition of the dashboard attribute filter.
     */
    readonly filter: DashboardAttributeFilterItem;
    /**
     * New label used for displaying filter attribute values
     */
    readonly displayAsLabel: ObjRef | undefined;
}
/**
 * This event is emitted when the attribute filter mode is change.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigDisplayAsLabelChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.DISPLAY_AS_LABEL_CHANGED";
    readonly payload: IDashboardAttributeFilterConfigDisplayAsLabelChangedPayload;
}
export declare function dashboardAttributeConfigDisplayAsLabelChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem, displayAsLabel: ObjRef | undefined, correlationId?: string): IDashboardAttributeFilterConfigDisplayAsLabelChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterConfigDisplayAsLabelChanged}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardAttributeFilterConfigDisplayAsLabelChanged: (obj: unknown) => obj is IDashboardAttributeFilterConfigDisplayAsLabelChanged;
/**
 * Payload of the {@link isDashboardAttributeFilterConfigLimitingItemsChanged} event.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigLimitingItemsChangedPayload {
    /**
     * The updated definition of the dashboard attribute filter.
     *
     * The definition of mode represents the new state.
     */
    readonly filter: DashboardAttributeFilterItem;
}
/**
 * This event is emitted when the attribute filter limiting items are changed.
 *
 * @alpha
 */
export interface IDashboardAttributeFilterConfigLimitingItemsChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.ATTRIBUTE_FILTER_CONFIG.LIMITING_ITEMS_CHANGED";
    readonly payload: IDashboardAttributeFilterConfigLimitingItemsChangedPayload;
}
export declare function dashboardAttributeConfigLimitingItemsChanged(ctx: DashboardContext, filter: DashboardAttributeFilterItem): IDashboardAttributeFilterConfigLimitingItemsChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardAttributeFilterConfigLimitingItemsChanged}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardAttributeFilterConfigLimitingItemsChanged: (obj: unknown) => obj is IDashboardAttributeFilterConfigLimitingItemsChanged;
/**
 * Payload of the {@link DashboardFilterContextChanged} event.
 *
 * @remarks
 *
 * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors
 * – those allow you to convert the `filterContext` object to array of {@link @gooddata/sdk-model#IFilter} instances you can use
 * with visualizations, filter UI components and so on.
 *
 * @public
 */
export type DashboardFilterContextChangedPayload = {
    /**
     * The new value of the filterContext.
     */
    readonly filterContext: IFilterContextDefinition;
    /**
     * The new value of the attribute filter configs.
     */
    readonly attributeFilterConfigs: IDashboardAttributeFilterConfig[];
    /**
     * The tab local identifier where the filter change was applied.
     * Only present when filters were applied to a specific tab (not the active tab).
     *
     * @internal
     */
    readonly tabLocalIdentifier?: string;
};
/**
 * This event is emitted after _any_ change to dashboard filters (be it date or attribute filter).
 * The event describes the new state of the entire filter context.
 *
 * @remarks
 * This event is emitted as convenience - more granular events describe all the possible
 * changes to the dashboard filters and can be used to even source the state of filter context.
 *
 * See also {@link filterContextToDashboardFiltersByWidget} and {@link filterContextToDashboardFiltersByDateDataSet} convertors
 * – those allow you to convert the `filterContext` in the event payload to array of {@link @gooddata/sdk-model#IFilter} instances you can use
 * with visualizations, filter UI components and so on.
 *
 * @public
 */
export type DashboardFilterContextChanged = IDashboardEvent & {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.CHANGED";
    readonly payload: DashboardFilterContextChangedPayload;
};
export declare function filterContextChanged(ctx: DashboardContext, filterContext: IFilterContextDefinition, attributeFilterConfigs: IDashboardAttributeFilterConfig[], correlationId?: string, tabLocalIdentifier?: string): DashboardFilterContextChanged;
/**
 * Tests whether the provided object is an instance of {@link DashboardFilterContextChanged}.
 *
 * @param obj - object to test
 * @public
 */
export declare const isDashboardFilterContextChanged: (obj: unknown) => obj is DashboardFilterContextChanged;
/**
 * Payload of the {@link IDashboardDateFilterTitleChanged} event.
 * @beta
 */
export interface IDashboardDateTitleChangedPayload {
    /**
     * The updated definition of the dashboard date filter.
     */
    readonly filter: IDashboardDateFilter;
    readonly filterConfig: IDashboardDateFilterConfig;
}
/**
 * This event is emitted when the date filter title change.
 *
 * @beta
 */
export interface IDashboardDateFilterTitleChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.DATE_FILTER_CONFIG.TITLE_CHANGED";
    readonly payload: IDashboardDateTitleChangedPayload;
}
export declare function dateFilterTitleChanged(ctx: DashboardContext, filter: IDashboardDateFilter, filterConfig: IDashboardDateFilterConfig, correlationId?: string): IDashboardDateFilterTitleChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardDateFilterTitleChanged}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardDateFilterTitleChanged: (obj: unknown) => obj is IDashboardDateFilterTitleChanged;
/**
 * Payload of the {@link IDashboardDateFilterModeChanged} event.
 * @beta
 */
export interface IDashboardDateModeChangedPayload {
    /**
     * The updated definition of the dashboard date filter.
     */
    readonly filter: IDashboardDateFilter;
    readonly filterConfig: IDashboardDateFilterConfig;
}
/**
 * This event is emitted when the date filter title change.
 *
 * @beta
 */
export interface IDashboardDateFilterModeChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.DATE_FILTER_CONFIG.MODE_CHANGED";
    readonly payload: IDashboardDateModeChangedPayload;
}
export declare function dateFilterModeChanged(ctx: DashboardContext, filter: IDashboardDateFilter, filterConfig: IDashboardDateFilterConfig, correlationId?: string): IDashboardDateFilterModeChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardDateFilterModeChanged}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardDateFilterModeChanged: (obj: unknown) => obj is IDashboardDateFilterModeChanged;
/**
 * Payload of the {@link IDashboardDateFilterAdded} event.
 * @beta
 */
export interface IDashboardDateFilterAddedPayload {
    /**
     * Definition of the created date filter. The filter's date data set ref can be used in subsequent
     * commands to identify this filter.
     */
    readonly added: IDashboardDateFilter;
    /**
     * Zero-based index indicating the position of the date filter among the other filters.
     */
    readonly index: number;
}
/**
 * This event is emitted after a new dashboard date filter is successfully
 * added into dashboard's filters.
 *
 * @beta
 */
export interface IDashboardDateFilterAdded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.ADDED";
    readonly payload: IDashboardDateFilterAddedPayload;
}
export declare function dateFilterAdded(ctx: DashboardContext, added: IDashboardDateFilter, index: number, correlationId?: string): IDashboardDateFilterAdded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardDateFilterAdded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardDateFilterAdded: (obj: unknown) => obj is IDashboardDateFilterAdded;
/**
 * Payload of the {@link IDashboardDateFilterRemoved} event.
 * @beta
 */
export interface IDashboardDateFilterRemovedPayload {
    /**
     * Definition of the removed date filter.
     */
    readonly removed: IDashboardDateFilter;
}
/**
 * This event is emitted after a dashboard date filter is successfully
 * removed from the dashboard's filters.
 *
 * @beta
 */
export interface IDashboardDateFilterRemoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.REMOVED";
    readonly payload: IDashboardDateFilterRemovedPayload;
}
export declare function dateFilterRemoved(ctx: DashboardContext, removed: IDashboardDateFilter, correlationId?: string): IDashboardDateFilterRemoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardDateFilterRemoved}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardDateFilterRemoved: (obj: unknown) => obj is IDashboardDateFilterRemoved;
/**
 * Payload of the {@link IDashboardDateFilterMoved} event.
 * @beta
 */
export interface IDashboardDateFilterMovedPayload {
    /**
     * Definition of the dashboard date filter that was moved.
     */
    readonly moved: IDashboardDateFilter;
    /**
     * The original position of the filter.
     */
    readonly fromIndex: number;
    /**
     * New absolute position of the filter.
     */
    readonly toIndex: number;
}
/**
 * This event is emitted after a dashboard date filter is moved from one position in the filter bar
 * to a new position
 *
 * @beta
 */
export interface IDashboardDateFilterMoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.DATE_FILTER.MOVED";
    readonly payload: IDashboardDateFilterMovedPayload;
}
export declare function dateFilterMoved(ctx: DashboardContext, moved: IDashboardDateFilter, fromIndex: number, toIndex: number, correlationId?: string): IDashboardDateFilterMoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardDateFilterMoved}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardDateFilterMoved: (obj: unknown) => obj is IDashboardDateFilterMoved;
/**
 * Payload of the {@link IDashboardFilterViewCreationSucceeded} event.
 *
 * @alpha
 */
export interface IDashboardFilterViewCreationSucceededPayload {
    readonly filterView: IDashboardFilterView;
}
/**
 * This event is emitted after a new dashboard filter view is successfully created.
 *
 * @alpha
 */
export interface IDashboardFilterViewCreationSucceeded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.SUCCESS";
    readonly payload: IDashboardFilterViewCreationSucceededPayload;
}
export declare function filterViewCreationSucceeded(ctx: DashboardContext, filterView: IDashboardFilterView, correlationId?: string): IDashboardFilterViewCreationSucceeded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewCreationSucceeded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardFilterViewCreationSucceeded: (obj: unknown) => obj is IDashboardFilterViewCreationSucceeded;
/**
 * This event is emitted after a new dashboard filter view creation failed.
 *
 * @alpha
 */
export interface IDashboardFilterViewCreationFailed extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CREATE.FAILURE";
}
export declare function filterViewCreationFailed(ctx: DashboardContext, correlationId?: string): IDashboardFilterViewCreationFailed;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewCreationFailed}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterViewCreationFailed: (obj: unknown) => obj is IDashboardFilterViewCreationFailed;
/**
 * Payload of the {@link IDashboardFilterViewDeletionSucceeded} event.
 *
 * @alpha
 */
export interface IDashboardFilterViewDeletionSucceededPayload {
    readonly filterView: IDashboardFilterView;
}
/**
 * This event is emitted after a dashboard filter view is successfully deleted.
 *
 * @alpha
 */
export interface IDashboardFilterViewDeletionSucceeded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.SUCCESS";
    readonly payload: IDashboardFilterViewDeletionSucceededPayload;
}
export declare function filterViewDeletionSucceeded(ctx: DashboardContext, filterView: IDashboardFilterView, correlationId?: string): IDashboardFilterViewDeletionSucceeded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewDeletionSucceeded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardFilterViewDeletionSucceeded: (obj: unknown) => obj is IDashboardFilterViewDeletionSucceeded;
/**
 * This event is emitted after a dashboard filter view deletion failed.
 *
 * @alpha
 */
export interface IDashboardFilterViewDeletionFailed extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.DELETE.FAILURE";
}
export declare function filterViewDeletionFailed(ctx: DashboardContext, correlationId?: string): IDashboardFilterViewDeletionFailed;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewDeletionFailed}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterViewDeletionFailed: (obj: unknown) => obj is IDashboardFilterViewDeletionFailed;
/**
 * Payload of the {@link IDashboardFilterViewApplicationSucceeded} event.
 *
 * @alpha
 */
export interface IDashboardFilterViewApplicationSucceededPayload {
    readonly filterView: IDashboardFilterView;
}
/**
 * This event is emitted after a dashboard filter view is successfully applied.
 *
 * @alpha
 */
export interface IDashboardFilterViewApplicationSucceeded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.SUCCESS";
    readonly payload: IDashboardFilterViewApplicationSucceededPayload;
}
export declare function filterViewApplicationSucceeded(ctx: DashboardContext, filterView: IDashboardFilterView, correlationId?: string): IDashboardFilterViewApplicationSucceeded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewApplicationSucceeded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardFilterViewApplicationSucceeded: (obj: unknown) => obj is IDashboardFilterViewApplicationSucceeded;
/**
 * This event is emitted after a dashboard filter view application failed.
 *
 * @alpha
 */
export interface IDashboardFilterViewApplicationFailed extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.APPLY.FAILURE";
}
export declare function filterViewApplicationFailed(ctx: DashboardContext, correlationId?: string): IDashboardFilterViewApplicationFailed;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewApplicationFailed}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterViewApplicationFailed: (obj: unknown) => obj is IDashboardFilterViewApplicationFailed;
/**
 * Payload of the {@link IDashboardFilterViewDefaultStatusChangeSucceeded} event.
 *
 * @alpha
 */
export interface IDashboardFilterViewDefaultStatusChangeSucceededPayload {
    readonly filterView: IDashboardFilterView;
}
/**
 * This event is emitted after a dashboard filter view default status is successfully changed.
 * See the enclosed filterView object in the payload to check its new status.
 *
 * @alpha
 */
export interface IDashboardFilterViewDefaultStatusChangeSucceeded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.SUCCESS";
    readonly payload: IDashboardFilterViewDefaultStatusChangeSucceededPayload;
}
export declare function filterViewDefaultStatusChangeSucceeded(ctx: DashboardContext, filterView: IDashboardFilterView, correlationId?: string): IDashboardFilterViewDefaultStatusChangeSucceeded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewDefaultStatusChangeSucceeded}.
 *
 * @param obj - object to test
 * @beta
 */
export declare const isDashboardFilterViewDefaultStatusChangeSucceeded: (obj: unknown) => obj is IDashboardFilterViewDefaultStatusChangeSucceeded;
/**
 * Payload of the {@link IDashboardFilterViewDefaultStatusChangeFailed} event.
 *
 * @alpha
 */
export interface IDashboardFilterViewDefaultStatusChangeFailedPayload {
    readonly filterView: IDashboardFilterView;
}
/**
 * This event is emitted after a dashboard filter view default status change failed.
 *
 * @alpha
 */
export interface IDashboardFilterViewDefaultStatusChangeFailed extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS.FAILURE";
    readonly payload: IDashboardFilterViewDefaultStatusChangeFailedPayload;
}
export declare function filterViewDefaultStatusChangeFailed(ctx: DashboardContext, filterView: IDashboardFilterView, correlationId?: string): IDashboardFilterViewDefaultStatusChangeFailed;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterViewDefaultStatusChangeFailed}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterViewDefaultStatusChangeFailed: (obj: unknown) => obj is IDashboardFilterViewDefaultStatusChangeFailed;
/**
 * This event is emitted after dashboard selection filters have been reset.
 *
 * @alpha
 */
export interface IDashboardFilterContextSelectionReset extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.SELECTION.RESET";
}
/**
 * @alpha
 */
export declare function filterContextSelectionReset(correlationId?: string): DashboardEventBody<IDashboardFilterContextSelectionReset>;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterContextSelectionReset}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterContextSelectionReset: (obj: unknown) => obj is IDashboardFilterContextSelectionReset;
/**
 * This event is emitted after dashboard working selection filters have been applied.
 *
 * @alpha
 */
export interface IDashboardFilterContextWorkingSelectionApplied extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.WORKING_SELECTION.APPLIED";
}
/**
 * @alpha
 */
export declare function filterContextWorkingSelectionApplied(ctx: DashboardContext, correlationId?: string): IDashboardFilterContextWorkingSelectionApplied;
/**
 * Tests whether the provided object is an instance of {@link IDashboardFilterContextWorkingSelectionApplied}.
 *
 * @param obj - object to test
 *
 * @alpha
 */
export declare const isDashboardFilterContextWorkingSelectionApplied: (obj: unknown) => obj is IDashboardFilterContextWorkingSelectionApplied;
/**
 * Payload of the {@link IDashboardMeasureValueFilterAdded} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterAddedPayload {
    /**
     * Definition of the created measure value filter.
     */
    readonly added: IDashboardMeasureValueFilter;
    /**
     * Zero-based index indicating the position of the measure value filter among the draggable filters.
     */
    readonly index: number;
}
/**
 * This event is emitted after a new dashboard measure value filter is successfully added.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterAdded extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADDED";
    readonly payload: IDashboardMeasureValueFilterAddedPayload;
}
export declare function measureValueFilterAdded(ctx: DashboardContext, added: IDashboardMeasureValueFilter, index: number, correlationId?: string): IDashboardMeasureValueFilterAdded;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterAdded}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardMeasureValueFilterAdded: (obj: unknown) => obj is IDashboardMeasureValueFilterAdded;
/**
 * Payload of the {@link IDashboardMeasureValueFilterRemoved} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterRemovedPayload {
    /**
     * Removed measure value filter.
     */
    readonly removed: IDashboardMeasureValueFilter;
}
/**
 * This event is emitted after a dashboard measure value filter is removed.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterRemoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVED";
    readonly payload: IDashboardMeasureValueFilterRemovedPayload;
}
/**
 * Creates the {@link IDashboardMeasureValueFilterRemoved} event.
 *
 * @alpha
 */
export declare function measureValueFilterRemoved(ctx: DashboardContext, removed: IDashboardMeasureValueFilter, correlationId?: string): IDashboardMeasureValueFilterRemoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterRemoved}.
 *
 * @alpha
 */
export declare const isDashboardMeasureValueFilterRemoved: (obj: unknown) => obj is IDashboardMeasureValueFilterRemoved;
/**
 * Payload of the {@link IDashboardMeasureValueFilterMoved} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterMovedPayload {
    /**
     * Moved measure value filter.
     */
    readonly filter: IDashboardMeasureValueFilter;
    /**
     * Original zero-based index among draggable filters.
     */
    readonly index: number;
    /**
     * New zero-based index among draggable filters.
     */
    readonly newIndex: number;
}
/**
 * This event is emitted after a dashboard measure value filter is moved.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterMoved extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVED";
    readonly payload: IDashboardMeasureValueFilterMovedPayload;
}
/**
 * Creates the {@link IDashboardMeasureValueFilterMoved} event.
 *
 * @alpha
 */
export declare function measureValueFilterMoved(ctx: DashboardContext, filter: IDashboardMeasureValueFilter, index: number, newIndex: number, correlationId?: string): IDashboardMeasureValueFilterMoved;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterMoved}.
 *
 * @alpha
 */
export declare const isDashboardMeasureValueFilterMoved: (obj: unknown) => obj is IDashboardMeasureValueFilterMoved;
/**
 * Payload of the {@link IDashboardMeasureValueFilterConditionChanged} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterConditionChangedPayload {
    /**
     * Local identifier of the measure value filter whose condition was changed.
     */
    readonly localIdentifier: string;
    /**
     * Updated definition of the filter.
     */
    readonly filter: IDashboardMeasureValueFilter;
    /**
     * The new conditions applied to the filter. Empty or undefined when filter is set to "All".
     */
    readonly conditions?: MeasureValueFilterCondition[];
}
/**
 * This event is emitted after the conditions of a dashboard measure value filter have been changed.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterConditionChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CONDITION_CHANGED";
    readonly payload: IDashboardMeasureValueFilterConditionChangedPayload;
}
export declare function measureValueFilterConditionChanged(ctx: DashboardContext, localIdentifier: string, filter: IDashboardMeasureValueFilter, conditions: MeasureValueFilterCondition[] | undefined, correlationId?: string): IDashboardMeasureValueFilterConditionChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterConditionChanged}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardMeasureValueFilterConditionChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterConditionChanged;
/**
 * Payload of the {@link IDashboardMeasureValueFilterDimensionalityChanged} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterDimensionalityChangedPayload {
    /**
     * Local identifier of the measure value filter whose dimensionality was changed.
     */
    readonly localIdentifier: string;
    /**
     * Updated definition of the filter.
     */
    readonly filter: IDashboardMeasureValueFilter;
    /**
     * The new dashboard-level dimensionality. Empty or undefined means per-widget inheritance.
     */
    readonly dimensionality?: ObjRef[];
}
/**
 * This event is emitted after the dashboard-level dimensionality of a measure value filter changes.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterDimensionalityChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.DIMENSIONALITY_CHANGED";
    readonly payload: IDashboardMeasureValueFilterDimensionalityChangedPayload;
}
export declare function measureValueFilterDimensionalityChanged(ctx: DashboardContext, localIdentifier: string, filter: IDashboardMeasureValueFilter, dimensionality: ObjRef[] | undefined, correlationId?: string): IDashboardMeasureValueFilterDimensionalityChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterDimensionalityChanged}.
 *
 * @param obj - object to test
 * @alpha
 */
export declare const isDashboardMeasureValueFilterDimensionalityChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterDimensionalityChanged;
/**
 * Payload of the {@link IDashboardMeasureValueFilterTitleChanged} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterTitleChangedPayload {
    /**
     * Updated measure value filter.
     */
    readonly filter: IDashboardMeasureValueFilter;
}
/**
 * This event is emitted when the measure value filter title changes.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterTitleChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.FILTER_CONTEXT.MEASURE_VALUE_FILTER.TITLE_CHANGED";
    readonly payload: IDashboardMeasureValueFilterTitleChangedPayload;
}
/**
 * Creates the {@link IDashboardMeasureValueFilterTitleChanged} event.
 *
 * @alpha
 */
export declare function dashboardMeasureValueFilterTitleChanged(ctx: DashboardContext, filter: IDashboardMeasureValueFilter, correlationId?: string): IDashboardMeasureValueFilterTitleChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterTitleChanged}.
 *
 * @alpha
 */
export declare const isDashboardMeasureValueFilterTitleChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterTitleChanged;
/**
 * Payload of the {@link IDashboardMeasureValueFilterConfigModeChanged} event.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterConfigModeChangedPayload {
    /**
     * Updated measure value filter.
     */
    readonly filter: IDashboardMeasureValueFilter;
}
/**
 * This event is emitted when the measure value filter mode changes.
 *
 * @alpha
 */
export interface IDashboardMeasureValueFilterConfigModeChanged extends IDashboardEvent {
    readonly type: "GDC.DASH/EVT.MEASURE_VALUE_FILTER_CONFIG.MODE_CHANGED";
    readonly payload: IDashboardMeasureValueFilterConfigModeChangedPayload;
}
/**
 * Creates the {@link IDashboardMeasureValueFilterConfigModeChanged} event.
 *
 * @alpha
 */
export declare function dashboardMeasureValueFilterConfigModeChanged(ctx: DashboardContext, filter: IDashboardMeasureValueFilter, correlationId?: string): IDashboardMeasureValueFilterConfigModeChanged;
/**
 * Tests whether the provided object is an instance of {@link IDashboardMeasureValueFilterConfigModeChanged}.
 *
 * @alpha
 */
export declare const isDashboardMeasureValueFilterConfigModeChanged: (obj: unknown) => obj is IDashboardMeasureValueFilterConfigModeChanged;
//# sourceMappingURL=filters.d.ts.map