import { BooleanInput } from '@angular/cdk/coercion';
import * as i0 from '@angular/core';

/**
 * @description
 * Individual item component for discussion threads, representing a single message or entry in a conversation.
 * Displays author information, timestamp, message content, and optional metadata with support for visual variants.
 *
 * @usageNotes
 * ### Basic Thread Item
 * ```html
 * <eui-discussion-thread-item
 *   [author]="'John Doe'"
 *   [date]="'2024-01-15'"
 *   [body]="'This is a comment in the discussion'">
 * </eui-discussion-thread-item>
 * ```
 *
 * ### With Type Styling
 * ```html
 * <eui-discussion-thread-item
 *   [author]="'System'"
 *   [date]="'2024-01-15T10:30:00'"
 *   [body]="'Status updated to In Progress'"
 *   [typeClass]="'info'">
 * </eui-discussion-thread-item>
 * ```
 *
 * ### With Tooltip
 * ```html
 * <eui-discussion-thread-item
 *   [author]="'Jane Smith'"
 *   [date]="'2024-01-15'"
 *   [body]="'Review completed'"
 *   [tooltip]="'Approved by manager'">
 * </eui-discussion-thread-item>
 * ```
 *
 * ### Accessibility
 * - Uses `role="listitem"` for proper list semantics
 * - Author and date information announced before message content
 * - Tooltip provides additional context for assistive technologies
 * - Ensure date format is screen reader friendly
 *
 * ### Notes
 * - Use within `eui-discussion-thread` component for proper structure
 * - `typeClass` affects icon and styling (info, warning, success, danger)
 * - `isOdd` property used for alternating row styling
 * - Date accepts string format and is displayed with DatePipe
 * - Supports rich content in body via content projection
 */
declare class EuiDiscussionThreadItemComponent {
    /**
     * Sets CSS classes on the host element based on the typeClass property.
     * This helps maintain consistent styling with the parent theme variant.
     * @returns {string} The CSS class to be applied
     */
    get cssClasses(): string;
    /**
     * ARIA role for the host element to ensure proper accessibility.
     * @default 'listitem'
     */
    role: string;
    /**
     * Unique identifier for the discussion thread item.
     */
    id: string;
    /**
     * Type class defining the visual style of the item (e.g., 'info', 'warning', 'error').
     * This affects the color scheme applied to the item.
     */
    typeClass: string;
    /**
     * Date when the thread item was created or modified.
     */
    date: string;
    /**
     * Name or identifier of the author who created the item.
     */
    author: string;
    /**
     * Content body of the discussion thread item.
     */
    body: string;
    /**
     * Tooltip text to display additional information when hovering over the item.
     */
    tooltip: string;
    /**
     * Indicates if this item is in an odd position in the list.
     * Used for alternating styling patterns within the thread.
     */
    get isOdd(): boolean;
    set isOdd(value: BooleanInput);
    private _isOdd;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDiscussionThreadItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiDiscussionThreadItemComponent, "eui-discussion-thread-item", never, { "id": { "alias": "id"; "required": false; }; "typeClass": { "alias": "typeClass"; "required": false; }; "date": { "alias": "date"; "required": false; }; "author": { "alias": "author"; "required": false; }; "body": { "alias": "body"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "isOdd": { "alias": "isOdd"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * @description
 * Interface defining the structure of an item within a discussion thread.
 *
 * This interface encapsulates all the necessary properties to display
 * a single message or entry, including metadata like author, date,
 * and styling information.
 *
 * @see EuiDiscussionThreadComponent
 * @see EuiDiscussionThreadItemComponent
 */
interface EuiDiscussionThreadItem {
    /**
     * Unique identifier for the discussion thread item.
     * Used for tracking and reference purposes.
     */
    id: string;
    /**
     * CSS class identifier that defines the visual style of the item.
     * Common values include 'info', 'warning', 'error', etc.
     */
    typeClass: string;
    /**
     * Date when the thread item was created or modified.
     * Typically formatted as an ISO string or similar date format.
     */
    date: string;
    /**
     * Name or identifier of the author who created the item.
     */
    author: string;
    /**
     * Content body of the discussion thread item.
     * Contains the main message or comment text.
     */
    body: string;
    /**
     * Optional tooltip text to display additional information
     * when hovering over the item.
     */
    tooltip?: string;
}

/**
 * @description
 * A component for displaying threaded discussions or conversation timelines in a structured format.
 * Renders a list of discussion items with support for titles, subtitles, and tooltips.
 * Ideal for comment threads, activity feeds, chat histories, and collaborative communication interfaces.
 *
 * @usageNotes
 * ### Basic Usage with Items Array
 * ```typescript
 * // Component
 * discussionItems: EuiDiscussionThreadItem[] = [
 *   {
 *     author: 'John Doe',
 *     timestamp: new Date(),
 *     message: 'First comment'
 *   },
 *   {
 *     author: 'Jane Smith',
 *     timestamp: new Date(),
 *     message: 'Reply to comment'
 *   }
 * ];
 *
 * // Template
 * <eui-discussion-thread
 *   [items]="discussionItems"
 *   [titleLabel]="'Project Discussion'"
 *   [subTitleLabel]="'Team Collaboration'">
 * </eui-discussion-thread>
 * ```
 *
 * ### Using Content Projection
 * ```html
 * <eui-discussion-thread
 *   [titleLabel]="'Comments'"
 *   [tooltip]="'Discussion thread for this task'">
 *   <eui-discussion-thread-item
 *     [author]="'Alice'"
 *     [timestamp]="date1"
 *     [message]="'Initial comment'">
 *   </eui-discussion-thread-item>
 *   <eui-discussion-thread-item
 *     [author]="'Bob'"
 *     [timestamp]="date2"
 *     [message]="'Follow-up response'">
 *   </eui-discussion-thread-item>
 * </eui-discussion-thread>
 * ```
 *
 * ### Accessibility
 * - Automatically applies `role="list"` when items are present
 * - Each discussion item should have `role="listitem"` for proper structure
 * - Timestamps should be formatted for screen reader clarity
 * - Author names are announced before message content
 * - Tooltip provides additional context for assistive technologies
 *
 * ### Notes
 * - Supports both data-driven (`items` array) and content projection approaches
 * - Use `titleLabel` and `subTitleLabel` for thread categorization
 * - Items are rendered in the order provided
 * - Component automatically detects and counts projected `eui-discussion-thread-item` children
 * - Styling adapts based on thread depth and nesting level
 */
declare class EuiDiscussionThreadComponent {
    /**
     * Gets the CSS classes to apply to the host element.
     *
     * @returns {string} The CSS classes as a space-separated string.
     */
    get cssClasses(): string;
    /**
     * ARIA role for the host element to ensure proper accessibility.
     * @default 'list'
     */
    get checkRole(): string;
    /**
     * Array of discussion thread items to be displayed.
     * Each item should conform to the EuiDiscussionThreadItem interface.
     */
    items: EuiDiscussionThreadItem[];
    /**
     * The main title label for the discussion thread.
     */
    titleLabel: string;
    /**
     * The subtitle label for the discussion thread, typically used to provide
     * additional context or categorization.
     */
    subTitleLabel: string;
    /**
     * Tooltip text to display when hovering over the discussion thread.
     */
    tooltip: string;
    private discussionThreadItems;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDiscussionThreadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiDiscussionThreadComponent, "eui-discussion-thread", never, { "items": { "alias": "items"; "required": false; }; "titleLabel": { "alias": "titleLabel"; "required": false; }; "subTitleLabel": { "alias": "subTitleLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, {}, ["discussionThreadItems"], ["*"], true, never>;
}

declare const EUI_DISCUSSION_THREAD: readonly [typeof EuiDiscussionThreadComponent, typeof EuiDiscussionThreadItemComponent];

export { EUI_DISCUSSION_THREAD, EuiDiscussionThreadComponent, EuiDiscussionThreadItemComponent };
export type { EuiDiscussionThreadItem };
//# sourceMappingURL=eui-components-eui-discussion-thread.d.ts.map
