import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _Carousel from '@ui5/webcomponents/dist/Carousel.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';

declare class Carousel implements AfterViewInit {
    /**
     * Defines the accessible name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the IDs of the elements that label the input.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.
     */
    cyclic: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the number of items per page depending on the carousel width.
  
  - 'S' for screens smaller than 600 pixels.
  - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.
  - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.
  - 'XL' for screens greater than or equal to 1440 pixels.
  
  One item per page is shown by default.
     */
    itemsPerPage: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the visibility of the navigation arrows.
  If set to true the navigation arrows will be hidden.
     */
    hideNavigationArrows: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the visibility of the page indicator.
  If set to true the page indicator will be hidden.
     */
    hidePageIndicator: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the style of the page indicator.
  Available options are:
  
  - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)
  - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)
     */
    pageIndicatorType: _angular_core.InputSignal<"Default" | "Numeric" | undefined>;
    /**
     * Defines the carousel's background design.
     */
    backgroundDesign: _angular_core.InputSignal<"Solid" | "Transparent" | "Translucent" | undefined>;
    /**
     * Defines the page indicator background design.
     */
    pageIndicatorBackgroundDesign: _angular_core.InputSignal<"Solid" | "Transparent" | "Translucent" | undefined>;
    /**
     * Defines the page indicator border design.
     */
    pageIndicatorBorderDesign: _angular_core.InputSignal<"Solid" | "None" | undefined>;
    /**
     * Defines the position of arrows.
  
  Available options are:
  
  - `Content` - the arrows are placed on the sides of the current page.
  - `Navigation` - the arrows are placed on the sides of the page indicator.
     */
    arrowsPlacement: _angular_core.InputSignal<"Content" | "Navigation" | undefined>;
    /**
     * The indices of the currently visible items of the component.
     * @readonly This property is managed by the web component.
     */
    get visibleItemsIndices(): Array<number>;
    /**
     * Fired whenever the page changes due to user interaction,
  when the user clicks on the navigation arrows or while resizing,
  based on the `items-per-page` property.
     */
    ui5Navigate: _angular_core.OutputEmitterRef<UI5CustomEvent<_Carousel, "navigate">>;
    /**
     * Available slots for content projection in this component.
     *
     * Slots allow you to insert custom content into predefined areas of the web component.
     * Use the `slot` attribute on child elements to target specific slots.
     *
     * - **(default)**: Defines the content of the component.
  
  **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.
  They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).
     *
     * @example
     * ```html
     * <ui5-carousel>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-carousel>
     * ```
     *
     * @readonly
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
     */
    readonly slots: {
        name: string;
        description: string;
    }[];
    elementRef: ElementRef<_Carousel>;
    injector: Injector;
    get element(): _Carousel;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Carousel, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Carousel, "ui5-carousel, [ui5-carousel]", ["ui5Carousel"], { "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "cyclic": { "alias": "cyclic"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "hideNavigationArrows": { "alias": "hideNavigationArrows"; "required": false; "isSignal": true; }; "hidePageIndicator": { "alias": "hidePageIndicator"; "required": false; "isSignal": true; }; "pageIndicatorType": { "alias": "pageIndicatorType"; "required": false; "isSignal": true; }; "backgroundDesign": { "alias": "backgroundDesign"; "required": false; "isSignal": true; }; "pageIndicatorBackgroundDesign": { "alias": "pageIndicatorBackgroundDesign"; "required": false; "isSignal": true; }; "pageIndicatorBorderDesign": { "alias": "pageIndicatorBorderDesign"; "required": false; "isSignal": true; }; "arrowsPlacement": { "alias": "arrowsPlacement"; "required": false; "isSignal": true; }; }, { "ui5Navigate": "ui5Navigate"; }, never, ["*"], true, never>;
}

export { Carousel };
