import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";
import { IDefinition, ISnapshot, Instance, L10n, TL10n } from "@tripetto/runner";
import {
    IAutoscrollRunner,
    IAutoscrollSnapshot,
    IAutoscrollStyles,
    IBuilderInstance,
    TAutoscrollDisplay,
    TAutoscrollPause,
} from "@tripetto/runner-autoscroll";
import { IRunnerAttachments, TRunnerViews } from "@tripetto/runner-react-hook";
import { CSSProperties } from "react";
import * as i0 from "@angular/core";
export declare class TripettoAutoscrollComponent implements OnInit, OnDestroy {
    private element;
    private zone;
    private runnerController?;
    private builderController?;
    private initialDefinition?;
    private initialView?;
    private initialStyles?;
    private initialL10n?;
    /** Retrieves a reference to the runner instance. */
    get controller(): IAutoscrollRunner | undefined;
    /** Retrieves the running definition. */
    get definition(): IDefinition | Promise<IDefinition | undefined> | undefined;
    /** Specifies the definition to run. */
    set definition(definition: IDefinition | Promise<IDefinition | undefined> | undefined);
    /** Retrieves the view mode of the runner. */
    get view(): TRunnerViews;
    /** Specifies the view mode of the runner. */
    set view(view: TRunnerViews);
    /** Retrieves the styles (colors, font, size, etc.) for the runner. */
    get styles(): IAutoscrollStyles | Promise<IAutoscrollStyles | undefined> | undefined;
    /** Specifies the styles (colors, font, size, etc.) for the runner. */
    set styles(styles: IAutoscrollStyles | Promise<IAutoscrollStyles | undefined> | undefined);
    /** Retrieves the localization (locale and translation) information. */
    get l10n(): TL10n | Promise<TL10n | undefined> | undefined;
    /** Specifies the localization (locale and translation) information. */
    set l10n(l10n: TL10n | Promise<TL10n | undefined> | undefined);
    /** Specifies the display mode of the runner. */
    display?: TAutoscrollDisplay;
    /** Specifies the snapshot that should be restored. */
    snapshot?: ISnapshot<IAutoscrollSnapshot> | Promise<ISnapshot<IAutoscrollSnapshot> | undefined>;
    /** Try to store sessions in the local store to preserve persistency on navigation between multiple pages that host the runner. */
    persistent?: boolean;
    /** Specifies a license code for the runner. */
    license?: string | Promise<string | undefined>;
    /** Removes all Tripetto branding when a valid license is supplied. */
    removeBranding?: boolean;
    /** Specifies the attachments handler. */
    attachments?: IRunnerAttachments;
    /** Specifies a custom class name for the HTML element that holds the runner. */
    className?: string;
    /** Specifies the inline style for the HTML element that holds the runner. */
    customStyle?: CSSProperties;
    /**
     * Specifies custom CSS rules.
     * To specify rules for a specific block, use this selector: [data-block="<block identifier>"] { ... }
     */
    customCSS?: string;
    /** Specifies the preferred language (when no language is specified in the definition). */
    language?: string;
    /** Provides locale information. */
    locale?: L10n.ILocale | ((locale: string) => L10n.ILocale | Promise<L10n.ILocale | undefined> | undefined);
    /** Provides translations. */
    translations?:
        | L10n.TTranslation
        | L10n.TTranslation[]
        | ((
              language: string,
              name: string,
              version: string
          ) => L10n.TTranslation | L10n.TTranslation[] | Promise<L10n.TTranslation | L10n.TTranslation[] | undefined> | undefined);
    /** Invoked when the runner is ready. */
    onReady: EventEmitter<Instance>;
    /** Invoked when the runner processed a change. */
    onChange: EventEmitter<Instance>;
    /** Invoked when data can be imported into the instance. */
    onImport: EventEmitter<Instance>;
    /** Invoked when the data in the runner is changed. */
    onData: EventEmitter<Instance>;
    /** Specifies a function that is invoked when the user performs an action. */
    onAction: EventEmitter<{
        readonly type: "start" | "stage" | "unstage" | "focus" | "blur" | "pause" | "complete";
        readonly definition: {
            readonly fingerprint: string;
            readonly name: string;
        };
        readonly block?:
            | {
                  readonly id: string;
                  readonly name: string;
              }
            | undefined;
    }>;
    /** Invoked when the runner is about to end and submits data. */
    onSubmit: EventEmitter<{
        readonly instance: Instance;
        readonly language: string;
        readonly locale: string;
        readonly namespace: string | undefined;
    }>;
    /** Invoked when the runner is completed (after the data is submitted). */
    onComplete: EventEmitter<{
        readonly instance: Instance;
        readonly id?: string | undefined;
    }>;
    /** Specifies a function that is invoked when an edit action is requested. */
    onEdit: EventEmitter<{
        readonly type: "prologue" | "epilogue" | "styles" | "l10n" | "block";
        readonly id?: string | undefined;
    }>;
    /** Specifies a function that is invoked when the runner is "touched" by a user. */
    onTouch: EventEmitter<void>;
    /** Invoked when the runner is destroyed. */
    onDestroy: EventEmitter<void>;
    /** Specifies a function that is invoked when the runner wants to reload the definition. */
    onReload?: () => IDefinition | Promise<IDefinition>;
    /** Specifies a function or recipe that is invoked when the runner wants to pause. */
    onPause?: TAutoscrollPause;
    /** Reference to a builder instance to enable live preview for the builder. */
    set builder(
        ref:
            | {
                  readonly controller: IBuilderInstance;
              }
            | (() => {
                  readonly controller: IBuilderInstance;
              })
            | undefined
    );
    get builder():
        | {
              readonly controller: IBuilderInstance;
          }
        | (() => {
              readonly controller: IBuilderInstance;
          })
        | undefined;
    constructor(element: ElementRef, zone: NgZone);
    ngOnInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TripettoAutoscrollComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<
        TripettoAutoscrollComponent,
        "tripetto-runner-autoscroll",
        never,
        {
            definition: "definition";
            view: "view";
            styles: "styles";
            l10n: "l10n";
            display: "display";
            snapshot: "snapshot";
            persistent: "persistent";
            license: "license";
            removeBranding: "removeBranding";
            attachments: "attachments";
            className: "className";
            customStyle: "customStyle";
            customCSS: "customCSS";
            language: "language";
            locale: "locale";
            translations: "translations";
            onReload: "onReload";
            onPause: "onPause";
            builder: "builder";
        },
        {
            onReady: "onReady";
            onChange: "onChange";
            onImport: "onImport";
            onData: "onData";
            onAction: "onAction";
            onSubmit: "onSubmit";
            onComplete: "onComplete";
            onEdit: "onEdit";
            onTouch: "onTouch";
            onDestroy: "onDestroy";
        },
        never,
        never,
        false,
        never
    >;
}
