import { QdChipColor } from '../../chips/chips.module';
export type QdFacetOptionSingleSelect = {
    type: 'singleSelect';
    action?: {
        handler: () => void;
        label: {
            i18n: string;
        };
    };
};
export type QdFacetOptionMultiSelect = {
    type: 'multiSelect';
    action?: {
        handler: () => void;
        label: {
            i18n: string;
        };
    };
};
export type QdFacetOptionsStatus = {
    type: 'status';
    /**
     * @description With this mapping, you can define the chip color for each value. "value" defines the translation key to ensure multilingual support.
     */
    state: {
        [value: string]: QdChipColor;
    };
    /**
     * @description base translation key(s) that are added in front of the value for translation
     *
     * * @example: "i18n.page.facet.status"
     *
     * If none exists, the value is rendered without translation.
     */
    i18ns?: string;
};
export type QdFacetOptionsValue = {
    type: 'value';
    /**
     * @description base translation key(s) that are added in front of the value for translation
     *
     * * @example: "i18n.page.facet.value"
     *
     * If none exists, the value is rendered without translation.
     */
    i18ns?: string;
};
export type QdFacetOptionsDate = {
    type: 'date';
    showIcon?: boolean;
};
/**
 * @description Interface for the type and possibly other options of a facet
 */
export type QdFacetOptions = QdFacetOptionsStatus | QdFacetOptionsValue | {
    type: 'criticality';
} | {
    type: 'references';
} | {
    type: 'progress';
} | QdFacetOptionsDate | QdFacetOptionSingleSelect | QdFacetOptionMultiSelect;
/**
 * @description Interface for facets in the POH
 */
export interface QdPageHeaderFacetConfig<T> {
    /**
     * @description Key of property in resolved page object data
     */
    name: Extract<keyof T, string>;
    /**
     * @description Description for the specific header facet
     */
    label: {
        /**
         * @description i18n string for the description
         */
        i18n: string;
    };
    /**
     * @description Define the type of facet and possibly other options
     *
     * @example { type: 'status', status: { accepted: 'success'} }
     */
    options: QdFacetOptions;
}
//# sourceMappingURL=page-header-facet.interface.d.ts.map