import { ElementRef, NgZone, OnInit, Renderer2, QueryList, AfterContentInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { LyFocusState, LyRippleService, LyTheme2, ThemeVariables, StyleCollection, LyClasses, StyleTemplate, ThemeRef } from '@alyle/ui';
import { LyAvatar } from '@alyle/ui/avatar';
import { Platform } from '@angular/cdk/platform';
import { BooleanInput } from '@angular/cdk/coercion';
import * as i0 from "@angular/core";
export interface LyListTheme {
    /** Styles for List Component */
    root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)> | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);
}
export interface LyListVariables {
    list?: LyListTheme;
}
export declare const STYLES: (theme: ThemeVariables & LyListVariables, ref: ThemeRef) => {
    $name: string;
    $priority: number;
    root: () => (_className: string) => string;
    listItem: () => (_className: string) => string;
    onFocusByKeyboard: any;
    listItemContent: (_className: string) => string;
    oneLine: (_className: string) => string;
    twoLine: () => (_className: string) => string;
    actionListItem: (_className: string) => string;
    lines: (_className: string) => string;
    listItemWithIcon: () => (_className: string) => string;
    twoLineWithIcon: () => (_className: string) => string;
};
/** List container */
export declare class LyList {
    private theme;
    static readonly и = "LyList";
    /** @docs-private */
    readonly classes: LyClasses<(theme: ThemeVariables & LyListVariables, ref: ThemeRef) => {
        $name: string;
        $priority: number;
        root: () => (_className: string) => string;
        listItem: () => (_className: string) => string;
        onFocusByKeyboard: any;
        listItemContent: (_className: string) => string;
        oneLine: (_className: string) => string;
        twoLine: () => (_className: string) => string;
        actionListItem: (_className: string) => string;
        lines: (_className: string) => string;
        listItemWithIcon: () => (_className: string) => string;
        twoLineWithIcon: () => (_className: string) => string;
    }>;
    constructor(theme: LyTheme2);
    static ɵfac: i0.ɵɵFactoryDeclaration<LyList, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LyList, "ly-list", ["lyList"], {}, {}, never, never, false, never>;
}
/** @docs-private */
export declare class LyListItemBase {
    _theme: LyTheme2;
    _ngZone: NgZone;
    _platform: Platform;
    constructor(_theme: LyTheme2, _ngZone: NgZone, _platform: Platform);
}
/** @docs-private */
export declare const LyListItemMixinBase: import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/build-common-behaviors").CanStyleUpdater> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/bg").CanBg> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/color").CanColor> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/raised").CanRaised> & import("@alyle/ui").CanDisableCtor & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/outlined").CanOutlined> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/elevation").CanElevation> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/shadow-color").CanShadowColor> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/disable-ripple").CanDisableRipple> & typeof LyListItemBase;
/** List Item */
export declare class LyListItem extends LyListItemMixinBase implements OnInit, AfterContentInit, OnDestroy {
    private _el;
    private _renderer;
    _rippleService: LyRippleService;
    private _focusState;
    private _list;
    private _cd;
    /** @docs-private */
    readonly classes: LyClasses<(theme: ThemeVariables & LyListVariables, ref: ThemeRef) => {
        $name: string;
        $priority: number;
        root: () => (_className: string) => string;
        listItem: () => (_className: string) => string;
        onFocusByKeyboard: any;
        listItemContent: (_className: string) => string;
        oneLine: (_className: string) => string;
        twoLine: () => (_className: string) => string;
        actionListItem: (_className: string) => string;
        lines: (_className: string) => string;
        listItemWithIcon: () => (_className: string) => string;
        twoLineWithIcon: () => (_className: string) => string;
    }>;
    readonly _isBrowser: boolean;
    private _isActionListItem;
    private _onFocusByKeyboardState;
    _rippleContainer: ElementRef;
    _lines: QueryList<LyLine>;
    _icon: LyListIcon & {};
    _avatar: LyAvatar;
    get _listItemClasses(): string[];
    /** @docs-private */
    set isActionListItem(val: BooleanInput);
    get isActionListItem(): boolean;
    constructor(_el: ElementRef, _renderer: Renderer2, theme: LyTheme2, ngZone: NgZone, _rippleService: LyRippleService, _focusState: LyFocusState, _list: LyList, _cd: ChangeDetectorRef, _platform: Platform);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LyListItem, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LyListItem, "ly-list-item, a[ly-list-item], button[ly-list-item]", ["lyListItem"], { "bg": { "alias": "bg"; "required": false; }; "color": { "alias": "color"; "required": false; }; "raised": { "alias": "raised"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "outlined": { "alias": "outlined"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "shadowColor": { "alias": "shadowColor"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "isActionListItem": { "alias": "ly-list-item"; "required": false; }; }, {}, ["_icon", "_avatar", "_lines"], ["*", "[ly-line]"], false, never>;
}
export declare class LyListIcon implements OnInit {
    private _theme;
    private _el;
    private _renderer;
    private _disablePadding;
    private _disablePaddingClass;
    /** Disable extra padding */
    set disablePadding(val: BooleanInput);
    get disablePadding(): boolean;
    constructor(_theme: LyTheme2, _el: ElementRef, _renderer: Renderer2);
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LyListIcon, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LyListIcon, "[ly-list-icon]", never, { "disablePadding": { "alias": "disablePadding"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class LyLine {
    private _theme;
    private _el;
    private _renderer;
    constructor(_theme: LyTheme2, _el: ElementRef, _renderer: Renderer2);
    static ɵfac: i0.ɵɵFactoryDeclaration<LyLine, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LyLine, "[ly-line]", never, {}, {}, never, never, false, never>;
}
