import { type IMeasureSortTarget, type ISortItem, type LocalIdRef } from "@gooddata/sdk-model";
/**
 * @internal
 */
export type MeasureSortSuggestion = {
    type: "measureSort";
} & IMeasureSortTarget;
/**
 * Specifies set of available sorts for given level of hierarchy:
 * Specific attribute to which sort is related - for eg. multiple ViewBy attributes, each can specify its sorting
 */
/**
 * @internal
 */
export interface IAvailableSortsGroup {
    itemId: LocalIdRef;
    /**
     * Attribute sorts related to the attribute bucket item referenced by itemId
     * Attribute sort suggestions can be created later in AD
     * This structure eliminates the risk, that in one group attributeSortSuggestions for multiple attribute items will be mixed together
     */
    attributeSort?: {
        normalSortEnabled: boolean;
        areaSortEnabled: boolean;
    };
    metricSorts?: MeasureSortSuggestion[];
    /**
     * Additional text to available sorts, eg.
     * when there is single available sort, this can contain explanation of the reason
     */
    explanation?: string;
}
/**
 * @internal
 */
export declare const newAvailableSortsGroup: (attributeId: string, measureIds?: string[], normalSortEnabled?: boolean, areaSortEnabled?: boolean, explanation?: string | undefined) => IAvailableSortsGroup;
/**
 * @internal
 */
export interface ISortConfig {
    /**
     * Applied sort - when custom sort was provided, it is validated in current context of visualization and can be fully or partially applied.
     * When defined it has priority over defaultSort
     */
    appliedSort?: ISortItem[];
    /**
     * Default sort - default or chosen from inside of visualization
     */
    defaultSort: ISortItem[];
    /**
     * All available sorts for current buckets
     * - should contain current sort too
     */
    availableSorts: IAvailableSortsGroup[];
    /**
     * Whether sorting is supported by viz
     */
    supported: boolean;
    /**
     * Whether sorting is disabled for current buckets
     */
    disabled: boolean;
    /**
     * When sorting is disabled, this can contain explanation of reason
     */
    disabledExplanation?: string;
}
//# sourceMappingURL=SortConfig.d.ts.map