import { type IAccessControlAware, type IDashboard, type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardMeasureValueFilterConfig, type IDashboardTab, type IDashboardWidget, type IFilterContext, type IFilterContextDefinition, type ITempFilterContext, type IdentifierRef, type ObjRef, type ShareStatus, type UriRef } from "@gooddata/sdk-model";
import { type DashboardSelector, type DashboardState } from "../types.js";
import { type DashboardDescriptor } from "./metaState.js";
/**
 * Selects dashboard's descriptor.
 *
 * @internal
 */
export declare const selectDashboardDescriptor: DashboardSelector<DashboardDescriptor>;
/**
 * Selects persisted IDashboard object - that is the IDashboard object that was used to initialize the rest
 * of the dashboard state of the dashboard component during the initial load of the dashboard.
 *
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @internal
 */
export declare const selectPersistedDashboard: DashboardSelector<IDashboard | undefined>;
export declare const selectPersistedDashboardTabs: ((state: DashboardState) => IDashboardTab<IDashboardWidget>[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: import("./metaState.js").IDashboardMetaState) => IDashboardTab<IDashboardWidget>[];
    memoizedResultFunc: ((resultFuncArgs_0: import("./metaState.js").IDashboardMetaState) => IDashboardTab<IDashboardWidget>[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => IDashboardTab<IDashboardWidget>[];
    dependencies: [((state: DashboardState) => import("./metaState.js").IDashboardMetaState) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    } & {
        resultFunc: (resultFuncArgs_0: DashboardState) => import("./metaState.js").IDashboardMetaState;
        memoizedResultFunc: ((resultFuncArgs_0: DashboardState) => import("./metaState.js").IDashboardMetaState) & {
            clearCache: () => void;
            resultsCount: () => number;
            resetResultsCount: () => void;
        };
        lastResult: () => import("./metaState.js").IDashboardMetaState;
        dependencies: [(state: DashboardState) => DashboardState];
        recomputations: () => number;
        resetRecomputations: () => void;
        dependencyRecomputations: () => number;
        resetDependencyRecomputations: () => void;
    } & {
        memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
        argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
    argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
};
/**
 * Returns raw persisted filter contexts keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardFilterContextsByTab: DashboardSelector<Record<string, IFilterContext | ITempFilterContext | undefined>>;
/**
 * Returns persisted filter context definitions keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardFilterContextDefinitionsByTab: DashboardSelector<Record<string, IFilterContextDefinition | undefined>>;
/**
 * Returns persisted attribute filter configs keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardAttributeFilterConfigsByTab: DashboardSelector<Record<string, IDashboardAttributeFilterConfig[]>>;
/**
 * Returns persisted date filter config overrides keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardDateFilterConfigByTab: DashboardSelector<Record<string, IDashboardDateFilterConfig | undefined>>;
/**
 * Returns persisted date filter configs keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardDateFilterConfigsByTab: DashboardSelector<Record<string, IDashboardDateFilterConfigItem[]>>;
/**
 * Returns persisted measure value filter configs keyed by tab identifier.
 *
 * @internal
 */
export declare const selectPersistedDashboardMeasureValueFilterConfigsByTab: DashboardSelector<Record<string, IDashboardMeasureValueFilterConfig[]>>;
/**
 * Selects persisted filter context for the active tab (legacy selector).
 */
export declare const selectPersistedDashboardFilterContext: DashboardSelector<IFilterContext | ITempFilterContext | undefined>;
/**
 * Selects persisted date filter config for the active tab (legacy selector).
 *
 * @internal
 */
export declare const selectPersistedDashboardFilterContextDateFilterConfig: DashboardSelector<IDashboardDateFilterConfig | undefined>;
/**
 * Selects persisted filter context definition for the active tab (legacy selector).
 */
export declare const selectPersistedDashboardFilterContextAsFilterContextDefinition: DashboardSelector<IFilterContextDefinition | undefined>;
/**
 * Selects ref of the persisted dashboard object that backs and is rendered-by the dashboard component.
 *
 * @remarks
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @public
 */
export declare const selectDashboardRef: DashboardSelector<ObjRef | undefined>;
/**
 * Selects identifier of the persisted dashboard object that backs and is rendered-by the dashboard component.
 *
 * @remarks
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @public
 */
export declare const selectDashboardId: DashboardSelector<string | undefined>;
/**
 * Selects URI of the persisted dashboard object that backs and is rendered-by the dashboard component.
 *
 * @remarks
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @public
 */
export declare const selectDashboardUri: DashboardSelector<string | undefined>;
/**
 * Selects idRef of the persisted dashboard object that backs and is rendered-by the dashboard component.
 *
 * @remarks
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @public
 */
export declare const selectDashboardIdRef: DashboardSelector<IdentifierRef | undefined>;
/**
 * Selects uriRef of the persisted dashboard object that backs and is rendered-by the dashboard component.
 *
 * @remarks
 * Note that this may be undefined when the dashboard component works with a dashboard that has not yet
 * been persisted (typically newly created dashboard being edited).
 *
 * @public
 */
export declare const selectDashboardUriRef: DashboardSelector<UriRef | undefined>;
/**
 * Selects a boolean indication if dashboard is new
 *
 * @internal
 */
export declare const selectIsNewDashboard: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if dashboard is dynamically filled, that mean that the dashboard is filled
 * with widgets and layout dynamically from initial content
 *
 * @internal
 */
export declare const selectIsNewDashboardWithContent: DashboardSelector<boolean>;
/**
 * Selects current dashboard title.
 *
 * @public
 */
export declare const selectDashboardTitle: DashboardSelector<string>;
/**
 * Selects current dashboard description.
 *
 * @public
 */
export declare const selectDashboardDescription: DashboardSelector<string>;
/**
 * Selects dashboard tags.
 *
 * @public
 */
export declare const selectDashboardTags: DashboardSelector<string[]>;
/**
 * Selects dashboard share status.
 *
 * @alpha
 */
export declare const selectDashboardShareStatus: DashboardSelector<ShareStatus>;
/**
 * Returns whether dashboard is private.
 *
 * @alpha
 */
export declare const selectIsDashboardPrivate: DashboardSelector<boolean>;
/**
 * Selects dashboard lock status.
 *
 * @alpha
 */
export declare const selectDashboardLockStatus: DashboardSelector<boolean>;
/**
 * Selects complete dashboard share info.
 *
 * @alpha
 */
export declare const selectDashboardShareInfo: DashboardSelector<IAccessControlAware>;
/**
 * Selects whether dashboard cross filtering is disabled.
 *
 * @public
 */
export declare const selectDisableDashboardCrossFiltering: DashboardSelector<boolean>;
/**
 * Selects whether dashboard kda is disabled.
 *
 * @public
 */
export declare const selectDisableDashboardKda: DashboardSelector<boolean>;
/**
 * Selects whether user filter reset is disabled.
 *
 * @public
 */
export declare const selectDisableDashboardUserFilterReset: DashboardSelector<boolean>;
/**
 * Selects whether user filter save is disabled.
 *
 * @public
 */
export declare const selectDisableDashboardUserFilterSave: DashboardSelector<boolean>;
/**
 * Selects whether filter views are disabled.
 *
 * @public
 */
export declare const selectDisableFilterViews: DashboardSelector<boolean>;
/**
 * Selects evaluation frequency.
 *
 * @public
 */
export declare const selectEvaluationFrequency: DashboardSelector<string | undefined>;
/**
 * Selects a boolean indication if he dashboard has any changes to the dashboard filter compared to the persisted version (if any)
 *
 */
export declare const selectIsAttributeFilterConfigsChanged: DashboardSelector<boolean>;
/**
 * Selects the date dataset to use for filtering metrics in section header rich text.
 *
 * @alpha
 */
export declare const selectSectionHeadersDateDataSet: DashboardSelector<ObjRef | undefined>;
/**
 * Selects a boolean indication if the dashboard has any changes to the dashboard date filter configs compared to the persisted version (if any)
 *
 */
export declare const selectIsDateFilterConfigsChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the measure value filter configs compared to the persisted version (if any)
 *
 */
export declare const selectIsMeasureValueFilterConfigsChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the dashboard filter compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDateFilterChanged: DashboardSelector<boolean>;
export declare const selectIsDateFilterConfigChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the attribute filters compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsAttributeFiltersChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the date filters with dimension compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsOtherFiltersChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to any of the filters compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsFiltersChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the cross filtering compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDisableCrossFilteringChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the user filter reset compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDisableUserFilterResetChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the cross filtering compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDisableUserFilterSaveChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the filter views toggle compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDisableFilterViewsChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the evaluation frequency compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectEvaluationFrequencyChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if the dashboard has any changes to the section headers date dataset compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsSectionHeadersDateDataSetChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if he dashboard has any changes to the title compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsTitleChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if he dashboard has any changes to the layout compared to the persisted version (if any)
 *
 * Note: This uses selectBasicLayoutByTab which filters out custom/plugin widgets to avoid false positives
 * when comparing layouts, as plugin widgets are client-side extensions that should not trigger dirty state.
 *
 * @internal
 */
export declare const selectIsLayoutChanged: DashboardSelector<boolean>;
/**
 * Selects a boolean indication if he dashboard has any changes compared to the persisted version (if any)
 *
 * @internal
 */
export declare const selectIsDashboardDirty: DashboardSelector<boolean>;
/**
 * @internal
 */
export declare const selectDashboardWorkingDefinition: DashboardSelector<IDashboardDefinition<IDashboardWidget>>;
//# sourceMappingURL=metaSelectors.d.ts.map