import { CardPassThrough } from 'primeng/types/card';
export * from 'primeng/types/card';
import * as _angular_core from '@angular/core';
import { TemplateRef } from '@angular/core';
import * as i2 from 'primeng/api';
import { BlockableUI, Header, Footer } from 'primeng/api';
import { BaseComponent } from 'primeng/basecomponent';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import { BaseStyle } from 'primeng/base';

/**
 *
 * Card is a flexible container component.
 *
 * [Live Demo](https://www.primeng.org/card/)
 *
 * @module cardstyle
 *
 */
declare enum CardClasses {
    /**
     * Class name of the root element
     */
    root = "p-card",
    /**
     * Class name of the header element
     */
    header = "p-card-header",
    /**
     * Class name of the body element
     */
    body = "p-card-body",
    /**
     * Class name of the caption element
     */
    caption = "p-card-caption",
    /**
     * Class name of the title element
     */
    title = "p-card-title",
    /**
     * Class name of the subtitle element
     */
    subtitle = "p-card-subtitle",
    /**
     * Class name of the content element
     */
    content = "p-card-content",
    /**
     * Class name of the footer element
     */
    footer = "p-card-footer"
}
declare class CardStyle extends BaseStyle {
    name: string;
    style: string;
    classes: {
        root: string;
        header: string;
        body: string;
        caption: string;
        title: string;
        subtitle: string;
        content: string;
        footer: string;
    };
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardStyle, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<CardStyle>;
}
interface CardStyle extends BaseStyle {
}

/**
 * Card is a flexible container component.
 * @group Components
 */
declare class Card extends BaseComponent<CardPassThrough> implements BlockableUI {
    componentName: string;
    $pcCard: Card | undefined;
    bindDirectiveInstance: Bind;
    _componentStyle: CardStyle;
    /**
     * Header of the card.
     * @group Props
     */
    header: _angular_core.InputSignal<string | undefined>;
    /**
     * Subheader of the card.
     * @group Props
     */
    subheader: _angular_core.InputSignal<string | undefined>;
    headerFacet: _angular_core.Signal<Header | undefined>;
    footerFacet: _angular_core.Signal<Footer | undefined>;
    /**
     * Custom header template.
     * @group Templates
     */
    headerTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
    /**
     * Custom title template.
     * @group Templates
     */
    titleTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
    /**
     * Custom subtitle template.
     * @group Templates
     */
    subtitleTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
    /**
     * Custom content template.
     * @group Templates
     */
    contentTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
    /**
     * Custom footer template.
     * @group Templates
     */
    footerTemplate: _angular_core.Signal<TemplateRef<void> | undefined>;
    hasHeader: _angular_core.Signal<boolean>;
    hasTitle: _angular_core.Signal<boolean>;
    hasSubtitle: _angular_core.Signal<boolean>;
    hasFooter: _angular_core.Signal<boolean>;
    showHeaderText: _angular_core.Signal<boolean | "" | undefined>;
    showSubheaderText: _angular_core.Signal<boolean | "" | undefined>;
    onAfterViewChecked(): void;
    getBlockableElement(): HTMLElement;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "p-card", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "subheader": { "alias": "subheader"; "required": false; "isSignal": true; }; }, {}, ["headerFacet", "footerFacet", "headerTemplate", "titleTemplate", "subtitleTemplate", "contentTemplate", "footerTemplate"], ["p-header", "*", "p-footer"], true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class CardModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CardModule, never, [typeof Card, typeof i2.SharedModule, typeof i1.BindModule], [typeof Card, typeof i2.SharedModule, typeof i1.BindModule]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<CardModule>;
}

export { Card, CardClasses, CardModule, CardStyle };
