import type { Availability } from '..';
export declare enum LayoutType {
    Compact = "Compact",
    CompactVisual = "CompactVisual"
}
export declare enum InitialLayoutType {
    Compact = "Compact",
    Visual = "Visual"
}
/**
 * Visual Filter
 *
 * @isViewNode true
 */
export interface VisualFilter {
    /**
     * Defines where the selection field appears.
     * - Default: The filter field appears by default in the filter bar (both the regular filter fields as well as the corresponding visual filter fields).
     * - Adaptation: The filter field only appears under Adapt Filters.
     * - Hidden: The filter field is hidden.
     *
     * @artifactType Manifest
     */
    availability?: Availability;
    /**
     * The valuelist annotation corresponding to the visual filter representation.
     *
     * @artifactType Manifest
     * @hidden true
     */
    visualFilterValueList?: string;
}
export type SelectionField = {};
/**
 * Filter Fields
 *
 * @isViewNode true
 */
export interface SelectionFields {
    [key: string]: SelectionField | CustomFilterField;
}
/**
 * Compact Filters
 *
 * @isViewNode true
 */
export interface CompactFilters {
    [key: string]: SelectionField;
}
/**
 * Visual Filters
 *
 * @isViewNode true
 */
export interface VisualFilters {
    [key: string]: VisualFilter;
}
export declare enum FilterFieldPlacement {
    After = "After",
    Before = "Before"
}
export interface CustomFilterFieldPosition {
    /**
     * The key of another filter field is to be used as a placement anchor.
     */
    anchor?: string;
    /**
     * Define the placement, either before or after the anchor filter field.
     */
    placement: FilterFieldPlacement;
}
/**
 * Custom Filter Field
 *
 * @isViewNode true
 */
export interface CustomFilterField {
    /**
     * A static or i18n binding string.
     *
     * @i18nClassification COL: Custom filter field label
     */
    label: string;
    /**
     * The full path to the property to be filtered.
     */
    property: string;
    /**
     * The path to the XML template containing the filter control.
     */
    template: string;
    /**
     * Determines whether the filter field requires a value.
     */
    required?: boolean;
    /**
     * Defines the position of the filter field relative to another filter field.
     */
    position?: CustomFilterFieldPosition;
}
/**
 * Filter Bar
 *
 * @isViewNode true
 */
export interface FilterBar {
    /**
     * @isViewNode true
     */
    selectionFields?: SelectionFields | CompactFilters;
    /**
     * @isViewNode true
     */
    visualFilters?: VisualFilters;
    /**
     * Allows you to specify the default filter mode on the initial load.
     *
     * @artifactType Manifest
     */
    initialLayout?: InitialLayoutType;
    /**
     * Allows you to specify the layout of the filter bar.
     * - Compact: This setting shows filter fields in compact mode.
     * - CompactVisual: This setting shows filter fields in both compact and visual modes.
     *
     * @artifactType Manifest
     */
    layout?: LayoutType;
}
//# sourceMappingURL=FilterBar.d.ts.map