import * as i0 from '@angular/core';
import { EventEmitter, QueryList } from '@angular/core';
import * as i1 from '@eui/components/shared';

/**
 * @description
 * Container for content at the top of the card body. Used for highlighted information, alerts, or content that needs visual separation from the main body.
 *
 * @usageNotes
 * ### Alert Message
 * ```html
 * <eui-content-card-body-top>
 *     <div class="eui-u-bg-warning-light eui-u-p-s">
 *         <strong>Notice:</strong> This item requires attention
 *     </div>
 * </eui-content-card-body-top>
 * ```
 *
 * ### Summary Information
 * ```html
 * <eui-content-card-body-top>
 *     <dl class="eui-u-flex eui-u-flex-gap-m">
 *         <div><dt>Status:</dt><dd>Active</dd></div>
 *         <div><dt>Progress:</dt><dd>75%</dd></div>
 *     </dl>
 * </eui-content-card-body-top>
 * ```
 *
 * ### Accessibility
 * - Use appropriate semantic elements for content type
 * - Ensure alerts have proper ARIA roles when needed
 * - Maintain color contrast for all content
 *
 * ### Notes
 * - Positioned at the top of the body with visual separation
 * - Optional component - only use when content needs emphasis
 * - Commonly used for alerts, summaries, or key metrics
 * - Automatically styled with appropriate spacing
 */
declare class EuiContentCardBodyTopComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-body-top'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardBodyTopComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardBodyTopComponent, "eui-content-card-body-top", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for the main content area of the card. Supports optional top section for highlighted content.
 * Content is hidden when the card is collapsed.
 *
 * @usageNotes
 * ### Basic Body
 * ```html
 * <eui-content-card-body>
 *     <p>Main card content goes here</p>
 * </eui-content-card-body>
 * ```
 *
 * ### With Top Section
 * ```html
 * <eui-content-card-body>
 *     <eui-content-card-body-top>
 *         <div class="eui-u-bg-info-light eui-u-p-s">
 *             Important notice or highlighted content
 *         </div>
 *     </eui-content-card-body-top>
 *     <p>Regular card content follows</p>
 * </eui-content-card-body>
 * ```
 *
 * ### Accessibility
 * - Use semantic HTML elements for content structure
 * - Ensure proper heading hierarchy within body content
 * - Maintain sufficient color contrast for all text
 * - Make interactive elements keyboard accessible
 *
 * ### Notes
 * - Primary content container for the card
 * - Automatically hidden when parent card is collapsed
 * - Can contain any HTML content or components
 * - Use body-top for content that needs visual separation
 */
declare class EuiContentCardBodyComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-body'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardBodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardBodyComponent, "eui-content-card-body", never, {}, {}, never, ["eui-content-card-body-top", "*"], true, never>;
}

/**
 * @description
 * Container for footer content at the bottom of the card. Typically used for actions, links, or supplementary information.
 *
 * @usageNotes
 * ### Action Buttons
 * ```html
 * <eui-content-card-footer>
 *     <eui-button>View Details</eui-button>
 *     <eui-button euiSecondary>Cancel</eui-button>
 * </eui-content-card-footer>
 * ```
 *
 * ### Links
 * ```html
 * <eui-content-card-footer>
 *     <a href="/details" class="eui-u-text-link">Read more</a>
 * </eui-content-card-footer>
 * ```
 *
 * ### Mixed Content
 * ```html
 * <eui-content-card-footer>
 *     <div class="eui-u-flex eui-u-flex-justify-between">
 *         <span class="eui-u-text-muted">Last updated: 2 hours ago</span>
 *         <eui-button euiSizeS>Edit</eui-button>
 *     </div>
 * </eui-content-card-footer>
 * ```
 *
 * ### Accessibility
 * - Ensure all interactive elements are keyboard accessible
 * - Provide clear labels for all actions
 * - Use appropriate button types (button vs link)
 * - Maintain logical tab order
 *
 * ### Notes
 * - Positioned at the bottom of the card with visual separation
 * - Optional component - only include when actions or additional info needed
 * - Commonly used for primary/secondary actions
 * - Automatically styled with appropriate spacing and borders
 */
declare class EuiContentCardFooterComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-footer'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardFooterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardFooterComponent, "eui-content-card-footer", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for content placed at the start (left side) of the card header. Typically used for status indicators, badges, or icons.
 *
 * @usageNotes
 * ### With Status Chip
 * ```html
 * <eui-content-card-header-start>
 *     <eui-chip euiSizeS>Active</eui-chip>
 * </eui-content-card-header-start>
 * ```
 *
 * ### With Icon
 * ```html
 * <eui-content-card-header-start>
 *     <eui-icon-svg icon="document" size="m"/>
 * </eui-content-card-header-start>
 * ```
 *
 * ### Accessibility
 * - Ensure status indicators have appropriate text or ARIA labels
 * - Icons should have descriptive labels when conveying important information
 *
 * ### Notes
 * - Positioned at the start of the header before the title
 * - Commonly used for visual status indicators or categorization
 * - Content is automatically aligned and spaced
 */
declare class EuiContentCardHeaderStartComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-start'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderStartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderStartComponent, "eui-content-card-header-start", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * The eui-content-card component is based on Material Design and provides a content container for text, photos and actions in the context of a single subject.
 * Supports selection, collapsing, and bookmarking functionality.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <eui-content-card>
 *     <eui-content-card-header>
 *         <eui-content-card-header-title>Card Title</eui-content-card-header-title>
 *     </eui-content-card-header>
 *     <eui-content-card-body>Card content goes here</eui-content-card-body>
 * </eui-content-card>
 * ```
 *
 * ### With Selection and Collapse
 * ```html
 * <eui-content-card
 *     [isSelectable]="true"
 *     [isCollapsible]="true"
 *     (cardSelect)="onCardSelect($event)"
 *     (cardCollapse)="onCardCollapse($event)">
 *     <eui-content-card-header>
 *         <eui-content-card-header-title>Collapsible Card</eui-content-card-header-title>
 *     </eui-content-card-header>
 *     <eui-content-card-body>This content can be collapsed</eui-content-card-body>
 * </eui-content-card>
 * ```
 *
 * ### Accessibility
 * - Use semantic heading levels within card titles for proper document structure
 * - Ensure interactive elements (checkboxes, buttons) have appropriate labels
 * - When using selection, the checkbox is automatically managed with proper ARIA attributes
 * - Collapsible cards use icon buttons with appropriate accessibility labels
 *
 * ### Notes
 * - Cards can be made selectable with `isSelectable` input
 * - Cards can be made collapsible with `isCollapsible` input
 * - Bookmarking functionality is available via `isBookmarkable` input
 * - All interactive features emit events for state changes
 * - Use with child components for structured content layout
 */
declare class EuiContentCardComponent {
    /**
     * @description
     * Computes and returns the CSS classes for the component based on its current state.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses(): string;
    /**
     * Sets the `data-e2e` attribute at the host element.
     *
     * @default 'eui-card'
     */
    e2eAttr: string;
    /**
     * Sets the `isSelected` attribute in order to show the card header as selected.
     *
     * @default false
     */
    isSelected: boolean;
    /**
     * Sets the `isSelectable` attribute in order to show the card header checkbox for selection
     *
     * @default false
     */
    isSelectable: boolean;
    /**
     * Sets the `isCollapsible` attribute which shows the collapsible toggle in the header.
     *
     * @default false
     */
    isCollapsible: boolean;
    /**
     * Sets the `isCollapsed` attribute which collapses the card content.
     *
     * @default false
     */
    isCollapsed: boolean;
    /**
     * Sets the `isBookmarkable` attribute which is adding a bookmark toggle to the card header end-block.
     *
     * @default false
     */
    isBookmarkable: boolean;
    /**
     * Sets the `isBookmarkable` attribute which is adding a bookmark toggle to the card header end-block.
     *
     * @default false
     */
    isBookmarked: boolean;
    /**
     * Event emitted when the card is selected.
     */
    cardSelect: EventEmitter<boolean>;
    /**
     * Event emitted when the card is bookmarked.
     */
    cardBookmark: EventEmitter<boolean>;
    /**
     * Event emitted when the card is bookmarked.
     */
    cardCollapse: EventEmitter<boolean>;
    private baseStatesDirective;
    toggleCollapse(): void;
    toggleBookmark(): void;
    protected onSelect(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardComponent, "eui-content-card", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "isSelectable": { "alias": "isSelectable"; "required": false; }; "isCollapsible": { "alias": "isCollapsible"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isBookmarkable": { "alias": "isBookmarkable"; "required": false; }; "isBookmarked": { "alias": "isBookmarked"; "required": false; }; }, { "cardSelect": "cardSelect"; "cardBookmark": "cardBookmark"; "cardCollapse": "cardCollapse"; }, never, ["eui-content-card-media", "eui-content-card-header", "eui-content-card-body", "eui-content-card-footer"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: {}; outputs: {}; }]>;
    static ngAcceptInputType_isSelected: unknown;
    static ngAcceptInputType_isSelectable: unknown;
    static ngAcceptInputType_isCollapsible: unknown;
    static ngAcceptInputType_isCollapsed: unknown;
    static ngAcceptInputType_isBookmarkable: unknown;
    static ngAcceptInputType_isBookmarked: unknown;
}

/**
 * @description
 * Container for content placed at the end (right side) of the card header. Typically used for action buttons or menus.
 * Automatically integrates bookmark toggle when parent card has `isBookmarkable` enabled.
 *
 * @usageNotes
 * ### With Action Button
 * ```html
 * <eui-content-card-header-end>
 *     <eui-icon-button icon="eui-ellipsis-vertical" size="s"/>
 * </eui-content-card-header-end>
 * ```
 *
 * ### With Multiple Actions
 * ```html
 * <eui-content-card-header-end>
 *     <eui-icon-button icon="edit" size="s"/>
 *     <eui-icon-button icon="delete" size="s"/>
 * </eui-content-card-header-end>
 * ```
 *
 * ### Accessibility
 * - All action buttons must have accessible labels
 * - Use `aria-label` or visible text for icon buttons
 * - Group related actions logically
 *
 * ### Notes
 * - Positioned at the end of the header after all other content
 * - Automatically includes bookmark toggle when parent card is bookmarkable
 * - Actions are automatically aligned and spaced
 * - Commonly used for contextual menus or quick actions
 */
declare class EuiContentCardHeaderEndComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-end'
     */
    string: string;
    protected euiContentCardParent: EuiContentCardComponent;
    onToggle(event: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderEndComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderEndComponent, "eui-content-card-header-end", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for primary metadata information displayed below the subtitle. Used for key details like dates, authors, or categories.
 *
 * @usageNotes
 * ### Simple Metadata
 * ```html
 * <eui-content-card-header-metadata>
 *     Created: January 26, 2024
 * </eui-content-card-header-metadata>
 * ```
 *
 * ### Multiple Metadata Items
 * ```html
 * <eui-content-card-header-metadata>
 *     Author: John Doe | Category: Research | Status: Published
 * </eui-content-card-header-metadata>
 * ```
 *
 * ### With Semantic Markup
 * ```html
 * <eui-content-card-header-metadata>
 *     <time datetime="2024-01-26">January 26, 2024</time> |
 *     <span>5 min read</span>
 * </eui-content-card-header-metadata>
 * ```
 *
 * ### Accessibility
 * - Use semantic HTML elements like `<time>` for dates
 * - Ensure metadata is meaningful and not purely decorative
 * - Maintain sufficient color contrast
 *
 * ### Notes
 * - Displayed below subtitle with reduced visual weight
 * - Use for factual information about the card content
 * - Separate multiple items with visual dividers (e.g., pipes)
 * - Keep concise to maintain scannability
 */
declare class EuiContentCardHeaderMetadataComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-metadata'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderMetadataComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderMetadataComponent, "eui-content-card-header-metadata", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for secondary metadata information displayed below the primary metadata. Used for supplementary details like ratings, statistics, or additional context.
 *
 * @usageNotes
 * ### Rating Display
 * ```html
 * <eui-content-card-header-submetadata>
 *     <span class="eui-u-flex eui-u-flex-gap-2xs">
 *         <eui-icon-svg icon="star:fill" fillColor="primary" size="s"/>
 *         <strong>4.8</strong> (156 reviews)
 *     </span>
 * </eui-content-card-header-submetadata>
 * ```
 *
 * ### Statistics
 * ```html
 * <eui-content-card-header-submetadata>
 *     1.2K views • 45 comments
 * </eui-content-card-header-submetadata>
 * ```
 *
 * ### Accessibility
 * - Provide text alternatives for icon-only information
 * - Use `aria-label` when icons convey meaning
 * - Ensure color is not the only means of conveying information
 *
 * ### Notes
 * - Displayed below primary metadata with minimal visual weight
 * - Use for less critical but useful information
 * - Often includes icons or visual indicators
 * - Should not duplicate information from other header sections
 */
declare class EuiContentCardHeaderSubmetadataComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-submetadata'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderSubmetadataComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderSubmetadataComponent, "eui-content-card-header-submetadata", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for secondary title text displayed below the main title. Used for additional context or description.
 *
 * @usageNotes
 * ### Basic Subtitle
 * ```html
 * <eui-content-card-header-subtitle>
 *     Additional information about the card
 * </eui-content-card-header-subtitle>
 * ```
 *
 * ### With Formatting
 * ```html
 * <eui-content-card-header-subtitle>
 *     <span class="eui-u-text-muted">Last updated: 2 hours ago</span>
 * </eui-content-card-header-subtitle>
 * ```
 *
 * ### Accessibility
 * - Keep subtitle text concise and relevant
 * - Ensure sufficient color contrast for readability
 * - Use semantic markup when appropriate
 *
 * ### Notes
 * - Displayed directly below the title with reduced visual prominence
 * - Optional component - only include when additional context is needed
 * - Styled with secondary typography for visual hierarchy
 * - Should complement, not duplicate, the title
 */
declare class EuiContentCardHeaderSubtitleComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-subtitle'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderSubtitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderSubtitleComponent, "eui-content-card-header-subtitle", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container for the main title text of the card. Supports plain text, links, or custom HTML content.
 *
 * @usageNotes
 * ### Plain Text Title
 * ```html
 * <eui-content-card-header-title>
 *     Card Title
 * </eui-content-card-header-title>
 * ```
 *
 * ### Linked Title
 * ```html
 * <eui-content-card-header-title>
 *     <a href="/details" class="eui-u-text-link">Clickable Card Title</a>
 * </eui-content-card-header-title>
 * ```
 *
 * ### With Semantic Heading
 * ```html
 * <eui-content-card-header-title>
 *     <h3>Semantic Title</h3>
 * </eui-content-card-header-title>
 * ```
 *
 * ### Accessibility
 * - Use appropriate heading levels (h2-h6) based on document structure
 * - Ensure titles are descriptive and meaningful
 * - Links should clearly indicate their destination
 * - Avoid generic text like "Click here"
 *
 * ### Notes
 * - Primary heading for the card content
 * - Styled with appropriate typography for prominence
 * - Can contain interactive elements like links
 * - Should be concise and descriptive
 */
declare class EuiContentCardHeaderTitleComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header-title'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderTitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderTitleComponent, "eui-content-card-header-title", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container component for the card header section. Supports title, subtitle, metadata, and action areas.
 * Automatically integrates with parent card's collapsible functionality.
 *
 * @usageNotes
 * ### Basic Header
 * ```html
 * <eui-content-card-header>
 *     <eui-content-card-header-title>Card Title</eui-content-card-header-title>
 *     <eui-content-card-header-subtitle>Subtitle text</eui-content-card-header-subtitle>
 * </eui-content-card-header>
 * ```
 *
 * ### Complete Header with All Sections
 * ```html
 * <eui-content-card-header>
 *     <eui-content-card-header-start>
 *         <eui-chip euiSizeS>Status</eui-chip>
 *     </eui-content-card-header-start>
 *     <eui-content-card-header-title>
 *         <a href="#" class="eui-u-text-link">Linked Title</a>
 *     </eui-content-card-header-title>
 *     <eui-content-card-header-subtitle>Secondary information</eui-content-card-header-subtitle>
 *     <eui-content-card-header-metadata>Created: 2024-01-26</eui-content-card-header-metadata>
 *     <eui-content-card-header-end>
 *         <eui-icon-button icon="eui-ellipsis-vertical" size="s"/>
 *     </eui-content-card-header-end>
 * </eui-content-card-header>
 * ```
 *
 * ### Accessibility
 * - Use semantic heading elements within title component for proper document outline
 * - Ensure links in titles have descriptive text
 * - Action buttons should have accessible labels
 * - Metadata should be marked up appropriately (e.g., `<time>` for dates)
 *
 * ### Notes
 * - Header layout is flexible and adapts to included child components
 * - Start and end sections are optional for additional content placement
 * - Automatically handles collapse toggle when parent card is collapsible
 * - Supports multiple metadata lines for complex information display
 */
declare class EuiContentCardHeaderComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-header'
     */
    string: string;
    protected euiCardContentParent: EuiContentCardComponent;
    headerStartComponent: QueryList<EuiContentCardHeaderStartComponent>;
    protected onToggle(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardHeaderComponent, "eui-content-card-header", never, {}, {}, ["headerStartComponent"], ["eui-content-card-header-start", "*", "*", "*", "*", "*", "*", "eui-content-card-header-subtitle", "eui-content-card-header-metadata", "eui-content-card-header-submetadata", "eui-content-card-header-end", "eui-content-card-header-title"], true, never>;
}

/**
 * @description
 * Container for media content (images, videos, or graphics) displayed at the start of the card. Provides a visual anchor for the card content.
 *
 * @usageNotes
 * ### Image
 * ```html
 * <eui-content-card-media>
 *     <img src="/assets/card-image.jpg" alt="Descriptive text"/>
 * </eui-content-card-media>
 * ```
 *
 * ### Icon or Graphic
 * ```html
 * <eui-content-card-media>
 *     <eui-icon-svg icon="document" size="xl"/>
 * </eui-content-card-media>
 * ```
 *
 * ### Avatar
 * ```html
 * <eui-content-card-media>
 *     <eui-avatar src="/user.jpg" size="l"/>
 * </eui-content-card-media>
 * ```
 *
 * ### Accessibility
 * - Always provide alt text for images
 * - Use empty alt="" for decorative images
 * - Ensure icons have appropriate labels when conveying information
 * - Consider color contrast for overlaid text
 *
 * ### Notes
 * - Positioned at the start of the card before header content
 * - Optional component - only include when visual media enhances the card
 * - Automatically sized and positioned for optimal layout
 * - Supports images, icons, avatars, or custom graphics
 */
declare class EuiContentCardMediaComponent {
    /**
     * Binds the class to the component.
     *
     * @default 'eui-content-card-media'
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiContentCardMediaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiContentCardMediaComponent, "eui-content-card-media", never, {}, {}, never, ["*"], true, never>;
}

declare const EUI_CONTENT_CARD: readonly [typeof EuiContentCardComponent, typeof EuiContentCardBodyTopComponent, typeof EuiContentCardBodyComponent, typeof EuiContentCardFooterComponent, typeof EuiContentCardHeaderComponent, typeof EuiContentCardHeaderEndComponent, typeof EuiContentCardHeaderMetadataComponent, typeof EuiContentCardHeaderStartComponent, typeof EuiContentCardHeaderSubmetadataComponent, typeof EuiContentCardHeaderSubtitleComponent, typeof EuiContentCardHeaderTitleComponent, typeof EuiContentCardMediaComponent];

export { EUI_CONTENT_CARD, EuiContentCardBodyComponent, EuiContentCardBodyTopComponent, EuiContentCardComponent, EuiContentCardFooterComponent, EuiContentCardHeaderComponent, EuiContentCardHeaderEndComponent, EuiContentCardHeaderMetadataComponent, EuiContentCardHeaderStartComponent, EuiContentCardHeaderSubmetadataComponent, EuiContentCardHeaderSubtitleComponent, EuiContentCardHeaderTitleComponent, EuiContentCardMediaComponent };
//# sourceMappingURL=eui-components-eui-content-card.d.ts.map
