import * as i0 from '@angular/core';
import { ChangeDetectorRef } from '@angular/core';
import { SkyAppWindowRef } from '@skyux/core';
import * as i2 from '@angular/common';
import * as i1 from '@skyux/i18n';
import * as i4 from '@skyux/icon';

declare class SkyCopyToClipboardService {
    #private;
    constructor(windowRef: SkyAppWindowRef);
    copyContent(element: HTMLElement): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SkyCopyToClipboardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SkyCopyToClipboardService>;
}

declare class SkyCopyToClipboardComponent {
    #private;
    /**
     * Specifies an ARIA label for the copy to clipboard button
     * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).
     * If the button includes a visible label outside of the button itself, use `ariaLabelledBy` instead.
     */
    ariaLabel: string | undefined;
    /**
     * Specifies the HTML element ID (without the leading #) of the element that labels the copy to clipboard button. This sets the input's aria-labelledby attribute
     * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).
     * If the button does not include a visible label outside of the button itself, use `ariaLabel` instead.
     */
    ariaLabelledBy: string | undefined;
    /**
     * Specifies the HTMLElement which contains the content being copied.
     */
    copyTarget: HTMLElement | undefined;
    /**
     * Specifies the label for the copy to clipboard button when the button has not been clicked.
     */
    buttonText: string | undefined;
    /**
     * Specifies the label for the copy to clipboard button after the button has been clicked.
     */
    buttonClickedText: string | undefined;
    /**
     * Specifies a title attribute for the copy to clipboard button.
     */
    title: string | undefined;
    /**
     * Specifies the type of button to display. Valid values are `"default"` and `"icon-borderless"`.
     * @default "default"
     */
    buttonType: i0.InputSignal<"default" | "icon-borderless">;
    buttonActive: boolean;
    constructor(changeDetector: ChangeDetectorRef, clipboardSvc: SkyCopyToClipboardService, windowRef: SkyAppWindowRef);
    copyToClipboard(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SkyCopyToClipboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SkyCopyToClipboardComponent, "sky-copy-to-clipboard", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "copyTarget": { "alias": "copyTarget"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "buttonClickedText": { "alias": "buttonClickedText"; "required": false; }; "title": { "alias": "title"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
}

/**
 * Import into any component library module that needs to use resource strings.
 */
declare class SkyClipboardResourcesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SkyClipboardResourcesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SkyClipboardResourcesModule, never, never, [typeof i1.SkyI18nModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SkyClipboardResourcesModule>;
}

declare class SkyClipboardModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SkyClipboardModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SkyClipboardModule, [typeof SkyCopyToClipboardComponent], [typeof i2.CommonModule, typeof SkyClipboardResourcesModule, typeof i4.SkyIconModule], [typeof SkyCopyToClipboardComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SkyClipboardModule>;
}

export { SkyClipboardModule, SkyCopyToClipboardService, SkyCopyToClipboardComponent as λ1 };
