import * as i0 from '@angular/core';
import { OnInit, OnChanges, EventEmitter, SimpleChanges, ElementRef, AfterViewInit, TemplateRef, EmbeddedViewRef } from '@angular/core';
import { Direction } from '@angular/cdk/bidi';
import { NzConfigKey, NzConfigService } from 'ng-zorro-antd/core/config';
import { NzTSType } from 'ng-zorro-antd/core/types';
import { NzTextI18nInterface } from 'ng-zorro-antd/i18n';
import { NzAutosizeDirective } from 'ng-zorro-antd/input';

declare class NzTextCopyComponent implements OnInit, OnChanges {
    private cdr;
    private clipboard;
    private i18n;
    private destroyRef;
    copied: boolean;
    copyId?: ReturnType<typeof setTimeout>;
    locale: NzTextI18nInterface;
    nativeElement: any;
    copyTooltip: NzTSType | null;
    copedTooltip: NzTSType | null;
    copyIcon: NzTSType;
    copedIcon: NzTSType;
    text: string;
    tooltips?: [NzTSType, NzTSType] | null;
    icons: [NzTSType, NzTSType];
    readonly textCopy: EventEmitter<string>;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onClick(): void;
    onCopied(): void;
    private updateTooltips;
    private updateIcons;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTextCopyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTextCopyComponent, "nz-text-copy", ["nzTextCopy"], { "text": { "alias": "text"; "required": false; }; "tooltips": { "alias": "tooltips"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, { "textCopy": "textCopy"; }, never, never, true, never>;
}

declare class NzTextEditComponent implements OnInit {
    private ngZone;
    private cdr;
    private i18n;
    private destroyRef;
    editing: boolean;
    locale: NzTextI18nInterface;
    text?: string;
    icon: NzTSType;
    tooltip?: null | NzTSType;
    readonly startEditing: EventEmitter<void>;
    readonly endEditing: EventEmitter<string>;
    set textarea(textarea: ElementRef<HTMLTextAreaElement> | undefined);
    autosizeDirective: NzAutosizeDirective;
    beforeText?: string;
    currentText?: string;
    nativeElement: HTMLElement;
    private textarea$;
    private injector;
    ngOnInit(): void;
    onClick(): void;
    confirm(): void;
    onEnter(event: Event): void;
    onCancel(): void;
    focusAndSetValue(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTextEditComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTextEditComponent, "nz-text-edit", ["nzTextEdit"], { "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, { "startEditing": "startEditing"; "endEditing": "endEditing"; }, never, never, true, never>;
}

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

declare class NzTypographyComponent implements OnInit, AfterViewInit, OnChanges {
    readonly _nzModuleName: NzConfigKey;
    nzConfigService: NzConfigService;
    private el;
    private cdr;
    private viewContainerRef;
    private renderer;
    private platform;
    private i18n;
    private resizeService;
    private directionality;
    private document;
    private destroyRef;
    nzCopyable: boolean;
    nzEditable: boolean;
    nzDisabled: boolean;
    nzExpandable: boolean;
    nzEllipsis: boolean;
    nzCopyTooltips?: [NzTSType, NzTSType] | null;
    nzCopyIcons: [NzTSType, NzTSType];
    nzEditTooltip?: null | NzTSType;
    nzEditIcon: NzTSType;
    nzContent?: string;
    nzEllipsisRows: number;
    nzType: 'secondary' | 'warning' | 'danger' | 'success' | undefined;
    nzCopyText: string | undefined;
    nzSuffix: string | undefined;
    readonly nzContentChange: EventEmitter<string>;
    readonly nzCopy: EventEmitter<string>;
    readonly nzExpandChange: EventEmitter<void>;
    readonly nzOnEllipsis: EventEmitter<boolean>;
    textEditRef?: NzTextEditComponent;
    textCopyRef?: NzTextCopyComponent;
    ellipsisContainer?: ElementRef<HTMLSpanElement>;
    expandableBtn?: ElementRef<HTMLSpanElement>;
    contentTemplate?: TemplateRef<{
        content: string;
    }>;
    locale: NzTextI18nInterface;
    expandableBtnElementCache: HTMLElement | null;
    editing: boolean;
    ellipsisText: string | undefined;
    cssEllipsis: boolean;
    isEllipsis: boolean;
    expanded: boolean;
    ellipsisStr: string;
    dir: Direction;
    get hasEllipsisObservers(): boolean;
    get canCssEllipsis(): boolean;
    get hasOperationsWithEllipsis(): boolean;
    private viewInit;
    private requestId;
    private windowResizeSubscription;
    get copyText(): string;
    constructor();
    onTextCopy(text: string): void;
    onStartEditing(): void;
    onEndEditing(text: string): void;
    onExpand(): void;
    canUseCSSEllipsis(): boolean;
    renderOnNextFrame(): void;
    getOriginContentViewRef(): {
        viewRef: EmbeddedViewRef<{
            content: string;
        }>;
        removeView(): void;
    };
    syncEllipsis(): void;
    private getExpandableBtnElement;
    private renderAndSubscribeWindowResize;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTypographyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTypographyComponent, "  nz-typography,  [nz-typography],  p[nz-paragraph],  span[nz-text],  h1[nz-title], h2[nz-title], h3[nz-title], h4[nz-title]  ", ["nzTypography"], { "nzCopyable": { "alias": "nzCopyable"; "required": false; }; "nzEditable": { "alias": "nzEditable"; "required": false; }; "nzDisabled": { "alias": "nzDisabled"; "required": false; }; "nzExpandable": { "alias": "nzExpandable"; "required": false; }; "nzEllipsis": { "alias": "nzEllipsis"; "required": false; }; "nzCopyTooltips": { "alias": "nzCopyTooltips"; "required": false; }; "nzCopyIcons": { "alias": "nzCopyIcons"; "required": false; }; "nzEditTooltip": { "alias": "nzEditTooltip"; "required": false; }; "nzEditIcon": { "alias": "nzEditIcon"; "required": false; }; "nzContent": { "alias": "nzContent"; "required": false; }; "nzEllipsisRows": { "alias": "nzEllipsisRows"; "required": false; }; "nzType": { "alias": "nzType"; "required": false; }; "nzCopyText": { "alias": "nzCopyText"; "required": false; }; "nzSuffix": { "alias": "nzSuffix"; "required": false; }; }, { "nzContentChange": "nzContentChange"; "nzCopy": "nzCopy"; "nzExpandChange": "nzExpandChange"; "nzOnEllipsis": "nzOnEllipsis"; }, never, ["*"], true, never>;
    static ngAcceptInputType_nzCopyable: unknown;
    static ngAcceptInputType_nzEditable: unknown;
    static ngAcceptInputType_nzDisabled: unknown;
    static ngAcceptInputType_nzExpandable: unknown;
    static ngAcceptInputType_nzEllipsis: unknown;
    static ngAcceptInputType_nzEllipsisRows: unknown;
}

declare class NzTypographyModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTypographyModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzTypographyModule, never, [typeof NzTypographyComponent, typeof NzTextCopyComponent, typeof NzTextEditComponent], [typeof NzTypographyComponent, typeof NzTextCopyComponent, typeof NzTextEditComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzTypographyModule>;
}

export { NzTextCopyComponent, NzTextEditComponent, NzTypographyComponent, NzTypographyModule };
