import { LitElement, type PropertyValues } from 'lit';
/**
 * A step component used within an `igc-stepper` to represent an individual step in a wizard-like workflow.
 *
 * @remarks
 * Each step has a header (with an indicator, title, and subtitle) and a content area.
 * Steps can be marked as `active`, `complete`, `disabled`, `optional`, or `invalid`
 * to control their appearance and behavior within the stepper.
 *
 * Custom indicators can be provided via the `indicator` slot, and the content area
 * is rendered in the default slot.
 *
 * @element igc-step
 *
 * @slot - Renders the content of the step.
 * @slot indicator - Renders the indicator of the step. By default, it displays the step index + 1.
 * @slot title - Renders the title of the step.
 * @slot subtitle - Renders the subtitle of the step.
 *
 * @csspart header-container - Wrapper of the step's `header` and its separators.
 * @csspart disabled - Indicates a disabled state. Applies to `header-container`.
 * @csspart complete-start - Indicates a complete state of the current step. Applies to `header-container`.
 * @csspart complete-end - Indicates a complete state of the previous step. Applies to `header-container`.
 * @csspart optional - Indicates an optional state. Applies to `header-container`.
 * @csspart invalid - Indicates an invalid state. Applies to `header-container`.
 * @csspart top - Indicates that the title should be above the indicator. Applies to `header-container`.
 * @csspart bottom - Indicates that the title should be below the indicator. Applies to `header-container`.
 * @csspart start - Indicates that the title should be before the indicator. Applies to `header-container`.
 * @csspart end - Indicates that the title should be after the indicator. Applies to `header-container`.
 * @csspart header - Wrapper of the step's `indicator` and `text`.
 * @csspart indicator - The indicator of the step.
 * @csspart text - Wrapper of the step's `title` and `subtitle`.
 * @csspart empty - Indicates that no title and subtitle have been provided to the step. Applies to `text`.
 * @csspart title - The title of the step.
 * @csspart subtitle - The subtitle of the step.
 * @csspart body - Wrapper of the step's `content`.
 * @csspart content - The step's `content`.
 *
 * @example
 * ```html
 * <igc-step>
 *   <igc-icon slot="indicator" name="home"></igc-icon>
 *   <span slot="title">Home</span>
 *   <span slot="subtitle">Return to the home page</span>
 *   <p>Welcome! This is the first step.</p>
 * </igc-step>
 * ```
 *
 * @example Step with state attributes
 * ```html
 * <igc-step complete>
 *   <span slot="title">Completed step</span>
 *   <p>This step has been completed.</p>
 * </igc-step>
 *
 * <igc-step active invalid>
 *   <span slot="title">Current step</span>
 *   <p>This step has validation errors.</p>
 * </igc-step>
 *
 * <igc-step disabled>
 *   <span slot="title">Disabled step</span>
 *   <p>This step is not accessible.</p>
 * </igc-step>
 * ```
 */
export default class IgcStepComponent extends LitElement {
    static readonly tagName = "igc-step";
    static styles: import("lit").CSSResult[];
    static register(): void;
    private readonly _bodyRef;
    private readonly _contentRef;
    private readonly _bodyPlayer;
    private readonly _contentPlayer;
    private readonly _slots;
    private readonly _stepperContext?;
    private get _stepper();
    private get _state();
    private get _isHorizontal();
    private get _hasTitle();
    private get _hasSubtitle();
    private get _animation();
    private get _animationDuration();
    private get _contentTop();
    private get _index();
    private get _orientation();
    private get _titlePosition();
    private get _stepType();
    private get _previousComplete();
    private get _visited();
    private get _isAccessible();
    /**
     * Whether the step is invalid.
     *
     * Invalid steps are styled with an error state and are not
     * interactive when the stepper is in linear mode.
     *
     * @attr invalid
     * @default false
     */
    invalid: boolean;
    /**
     * Whether the step is active.
     *
     * Active steps are styled with an active state and their content is visible.
     *
     * @attr active
     * @default false
     */
    active: boolean;
    /**
     * Whether the step is optional.
     *
     * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.
     * if optional step is invalid the user could still move to the next step.
     *
     * @attr optional
     * @default false
     */
    optional: boolean;
    /**
     * Whether the step is disabled.
     *
     * Disabled steps are styled with a disabled state and are not interactive.
     *
     * @attr disabled
     * @default false
     */
    disabled: boolean;
    /**
     * Whether the step is completed.
     *
     * @attr complete
     * @default false
     */
    complete: boolean;
    constructor();
    protected willUpdate(changed: PropertyValues<this>): void;
    /**
     * @hidden @internal
     * @deprecated since 5.4.0. Use the Stepper's `navigateTo` method instead.
     */
    toggleAnimation(type: 'in' | 'out', direction?: 'normal' | 'reverse'): Promise<boolean>;
    private get _headerContainerParts();
    private get _textParts();
    private _renderIndicator;
    private _renderTitleAndSubtitle;
    private _renderHeader;
    private _renderContent;
    protected render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'igc-step': IgcStepComponent;
    }
}
