import { ChipPassThrough, ChipProps } from 'primeng/types/chip';
export * from 'primeng/types/chip';
import * as i0 from '@angular/core';
import { EventEmitter, TemplateRef, QueryList, SimpleChanges } from '@angular/core';
import * as i2 from 'primeng/api';
import { PrimeTemplate } from 'primeng/api';
import { BaseComponent } from 'primeng/basecomponent';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import * as _primeuix_styled from '@primeuix/styled';
import { BaseStyle } from 'primeng/base';

/**
 *
 * Chip represents people using icons, labels and images.
 *
 * [Live Demo](https://www.primeng.org/chip)
 *
 * @module chipstyle
 *
 */
declare enum ChipClasses {
    /**
     * Class name of the root element
     */
    root = "p-chip",
    /**
     * Class name of the image element
     */
    image = "p-chip-image",
    /**
     * Class name of the icon element
     */
    icon = "p-chip-icon",
    /**
     * Class name of the label element
     */
    label = "p-chip-label",
    /**
     * Class name of the remove icon element
     */
    removeIcon = "p-chip-remove-icon"
}
declare class ChipStyle extends BaseStyle {
    name: string;
    style: _primeuix_styled.StyleType;
    classes: {
        root: ({ instance }: {
            instance: any;
        }) => (string | {
            'p-disabled': any;
        })[];
        image: string;
        icon: string;
        label: string;
        removeIcon: string;
    };
    inlineStyles: {
        root: ({ instance }: {
            instance: any;
        }) => {
            display: string | false;
        };
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<ChipStyle, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ChipStyle>;
}
interface ChipStyle extends BaseStyle {
}

/**
 * Chip represents people using icons, labels and images.
 * @group Components
 */
declare class Chip extends BaseComponent<ChipPassThrough> {
    componentName: string;
    $pcChip: Chip | undefined;
    bindDirectiveInstance: Bind;
    onAfterViewChecked(): void;
    /**
     * Defines the text to display.
     * @group Props
     */
    label: string | undefined;
    /**
     * Defines the icon to display.
     * @group Props
     */
    icon: string | undefined;
    /**
     * Defines the image to display.
     * @group Props
     */
    image: string | undefined;
    /**
     * Alt attribute of the image.
     * @group Props
     */
    alt: string | undefined;
    /**
     * Class of the element.
     * @deprecated since v20.0.0, use `class` instead.
     * @group Props
     */
    styleClass: string | undefined;
    /**
     * When present, it specifies that the element should be disabled.
     * @group Props
     */
    disabled: boolean | undefined;
    /**
     * Whether to display a remove icon.
     * @group Props
     */
    removable: boolean | undefined;
    /**
     * Icon of the remove element.
     * @group Props
     */
    removeIcon: string | undefined;
    /**
     * Callback to invoke when a chip is removed.
     * @param {MouseEvent} event - Mouse event.
     * @group Emits
     */
    onRemove: EventEmitter<MouseEvent>;
    /**
     * This event is triggered if an error occurs while loading an image file.
     * @param {Event} event - Browser event.
     * @group Emits
     */
    onImageError: EventEmitter<Event>;
    visible: boolean;
    get removeAriaLabel(): any;
    /**
     * Used to pass all properties of the chipProps to the Chip component.
     * @group Props
     */
    get chipProps(): ChipProps | undefined;
    set chipProps(val: ChipProps | undefined);
    _chipProps: ChipProps | undefined;
    _componentStyle: ChipStyle;
    /**
     * Custom remove icon template.
     * @group Templates
     */
    removeIconTemplate: TemplateRef<void> | undefined;
    templates: QueryList<PrimeTemplate> | undefined;
    _removeIconTemplate: TemplateRef<void> | undefined;
    onAfterContentInit(): void;
    onChanges(simpleChanges: SimpleChanges): void;
    close(event: MouseEvent): void;
    onKeydown(event: any): void;
    imageError(event: Event): void;
    get dataP(): string | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<Chip, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Chip, "p-chip", never, { "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "image": { "alias": "image"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "removeIcon": { "alias": "removeIcon"; "required": false; }; "chipProps": { "alias": "chipProps"; "required": false; }; }, { "onRemove": "onRemove"; "onImageError": "onImageError"; }, ["removeIconTemplate", "templates"], ["*"], true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_removable: unknown;
}
declare class ChipModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ChipModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ChipModule, never, [typeof Chip, typeof i2.SharedModule], [typeof Chip, typeof i2.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ChipModule>;
}

export { Chip, ChipClasses, ChipModule, ChipStyle };
