import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { ToolbarActionType } from '../../types';
import { CardClickEvent, CardMetadata, CardSection, CardType } from './types';
import * as i0 from "@angular/core";
export declare class CardComponent implements OnInit, OnChanges {
    private presets;
    /**
     * Preset name to apply. Presets define reusable card configurations
     * (type, variant, padding, etc.) that can be registered at app level.
     *
     * @example
     * <val-card preset="feature" [props]="{ title: 'My Card' }"></val-card>
     */
    preset?: string;
    /**
     * Card configuration object. Values here override preset values.
     * @type {CardMetadata}
     * @property type - The card type (see CardType).
     * @property title - The card title.
     * @property image - The card image URL.
     * @property content - The card content.
     * @property actions - Array of action buttons (optional).
     * @property sections - Custom card sections (optional).
     * @property overtitle - Subtitle or overtitle (optional).
     */
    props: Partial<CardMetadata>;
    /**
     * Resolved props after merging preset + explicit props.
     */
    resolvedProps: CardMetadata;
    /**
     * Event emitted when the card or an action is clicked.
     */
    onClick: EventEmitter<CardClickEvent>;
    types: typeof CardType;
    actionTypes: typeof ToolbarActionType;
    sections: typeof CardSection;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Merge preset configuration with explicit props.
     * Explicit props take precedence over preset values.
     */
    private resolveProps;
    clickHandler(section: CardSection, token?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "val-card", never, { "preset": { "alias": "preset"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, { "onClick": "onClick"; }, never, never, true, never>;
}
