import * as _angular_core from '@angular/core';
import { MenuItem } from '@siemens/element-ng/common';
import { ContentActionBarMainItem, ViewType } from '@siemens/element-ng/content-action-bar';
import { MenuItem as MenuItem$1 } from '@siemens/element-ng/menu';
import { TranslatableString } from '@siemens/element-translate-ng/translate';

declare abstract class SiCardBaseDirective {
    /**
     * Card header text.
     */
    readonly heading: _angular_core.InputSignal<TranslatableString | undefined>;
    /**
     * Card secondary header text.
     */
    readonly subHeading: _angular_core.InputSignal<TranslatableString | undefined>;
    /**
     * Image source for the card.
     */
    readonly imgSrc: _angular_core.InputSignal<string | undefined>;
    /**
     * Alt text for a provided image.
     */
    readonly imgAlt: _angular_core.InputSignal<TranslatableString | undefined>;
    /**
     * Defines if an image is placed on top or start (left) of the card.
     *
     * @defaultValue 'vertical'
     */
    readonly imgDir: _angular_core.InputSignal<"horizontal" | "vertical" | undefined>;
    /**
     * Sets the image [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.
     *
     * @defaultValue 'scale-down'
     */
    readonly imgObjectFit: _angular_core.InputSignal<"fill" | "contain" | "cover" | "none" | "scale-down" | undefined>;
    /**
     * Sets the image [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.
     */
    readonly imgObjectPosition: _angular_core.InputSignal<string | undefined>;
    /**
     * In case the card uses an image and horizontal direction is used we set flex row direction.
     */
    protected readonly classCardHorizontal: _angular_core.Signal<boolean>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCardBaseDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiCardBaseDirective, never, never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "subHeading": { "alias": "subHeading"; "required": false; "isSignal": true; }; "imgSrc": { "alias": "imgSrc"; "required": false; "isSignal": true; }; "imgAlt": { "alias": "imgAlt"; "required": false; "isSignal": true; }; "imgDir": { "alias": "imgDir"; "required": false; "isSignal": true; }; "imgObjectFit": { "alias": "imgObjectFit"; "required": false; "isSignal": true; }; "imgObjectPosition": { "alias": "imgObjectPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class SiCardComponent extends SiCardBaseDirective {
    /**
     * Input list of primary action items. Supports up to **4** actions and omits additional ones.
     *
     * @defaultValue []
     */
    readonly primaryActions: _angular_core.InputSignal<(MenuItem | ContentActionBarMainItem)[]>;
    /**
     * Input list of secondary action items.
     *
     * @defaultValue []
     */
    readonly secondaryActions: _angular_core.InputSignal<(MenuItem | MenuItem$1)[]>;
    /**
     * A param that will be passed to the `action` in the primary/secondary actions.
     * This allows to re-use the same primary/secondary action arrays across rows
     * in a table.
     */
    readonly actionParam: _angular_core.InputSignal<any>;
    /**
     * The view type of the content action bar of the card. Default is `collapsible`
     * for dashboards. However, in some cases you might need to change to `expanded`
     * or `mobile`.
     *
     * @defaultValue 'collapsible'
     */
    readonly actionBarViewType: _angular_core.InputSignal<ViewType>;
    /**
     * Optional setting of html title attribute for the content action bar.
     * Helpful for a11y when only one action is configured in expand mode.
     *
     * @defaultValue ''
     */
    readonly actionBarTitle: _angular_core.InputSignal<TranslatableString>;
    /**
     * Returns `true` when primary or secondary actions are set.
     */
    readonly displayContentActionBar: _angular_core.Signal<boolean>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCardComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiCardComponent, "si-card", never, { "primaryActions": { "alias": "primaryActions"; "required": false; "isSignal": true; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; "isSignal": true; }; "actionParam": { "alias": "actionParam"; "required": false; "isSignal": true; }; "actionBarViewType": { "alias": "actionBarViewType"; "required": false; "isSignal": true; }; "actionBarTitle": { "alias": "actionBarTitle"; "required": false; "isSignal": true; }; }, {}, never, ["[headerIcon]", "[body]", "[footer]"], true, never>;
}

/**
 * An action card component that extends the base card component with option to
 * either select the whole card or trigger an action.
 *
 * Usage:
 * as selectable card:
 * `<button si-card selectable type="button" [(selected)]="isSelected">...</button>`
 *
 * or as an action card:
 * `<button si-card type="button" (click)="doSomeAction()">...</button>`
 */
declare class SiActionCardComponent extends SiCardBaseDirective {
    private static idCounter;
    private id;
    /**
     * Makes whole card selectable.
     *
     * @defaultValue false
     */
    readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Indicates if the card is selected.
     * Ignored when `selectable` is not set to `true`.
     *
     * @defaultValue false
     * */
    readonly selected: _angular_core.ModelSignal<boolean>;
    protected headingId: string;
    protected subHeadingId: string;
    protected contentId: string;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiActionCardComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiActionCardComponent, "button[si-action-card]", never, { "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; }, never, ["[headerIcon]", "[body]", "[footer]"], true, never>;
}

declare class SiCardModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCardModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiCardModule, never, [typeof SiCardComponent], [typeof SiCardComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiCardModule>;
}

export { SiActionCardComponent, SiCardComponent, SiCardModule };
