import { IIndicatorElementProps } from './IIndicatorElementProps';
import { IEventEmitter } from '@breadstone/mosaik-elements';
import { IIndicatorIndicatedEvent, IIndicatorIndicatedEventDetail } from './Events/IndicatorIndicatedEvent';
import { CustomElement } from '../../Abstracts/CustomElement';
declare const IndicatorElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Indicator - A visual element that indicates the current position within a set of items, often used in carousels or pagination.
 *
 * @element mosaik-indicator
 *
 * @fires indicated - Fired when the indicator is changed.
 *
 * @public
 */
export declare class IndicatorElement extends IndicatorElement_base implements IIndicatorElementProps {
    private readonly _indicated;
    private _total;
    private _selected;
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `total` count of indicators.
     *
     * @attr
     * @public
     */
    get total(): number;
    set total(value: number);
    /**
     * Gets or sets the `selected` indicator.
     *
     * @attr
     * @public
     */
    get selected(): number;
    set selected(value: number);
    /**
     * Called when the indicated value changes.
     * Provides reference to `any` as event argument.
     *
     * @public
     * @readonly
     * @eventProperty
     * @type EventEmitter<any>
     */
    get indicated(): IEventEmitter<IIndicatorIndicatedEventDetail>;
    /**
     * @private
     * @template
     */
    onItemClick(index: number): void;
    /**
     * Emits the {@link indicated} event.
     *
     * @protected
     */
    protected onIndicated(args: IIndicatorIndicatedEventDetail): void;
}
/**
 * @public
 */
export declare namespace IndicatorElement {
    type Props = IIndicatorElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-indicator': IndicatorElement;
    }
    interface HTMLElementEventMap {
        indicated: IIndicatorIndicatedEvent;
    }
}
export {};
//# sourceMappingURL=IndicatorElement.d.ts.map