import { IRequestAuthorization } from "@api-client/core/build/browser.js";
import { nothing, TemplateResult } from "lit";
import ApiElement from "../../ApiElement.js";
import '../../../define/ui/ui-icon-button.js';
import '../../../define/ui/ui-switch.js';
import '../../../define/ui/ui-icon.js';
/**
 * An authorization element renders an UI allowing the user to provide client credentials.
 *
 * @fires delete - When the user requests to delete this authorization.
 * @fires change - When authorization values have changed via a user interaction.
 */
export declare class Authorization extends ApiElement {
    /**
     * The form element in the UI.
     */
    protected form: HTMLFormElement;
    /**
     * The request authorization object keeping the config.
     * @attribute
     */
    authorization?: IRequestAuthorization;
    /**
     * Whether the UI is in the disabled state.
     * @attribute
     */
    disabled: boolean;
    /**
     * Whether the UI is in the read only state.
     * @attribute
     */
    readOnly: boolean;
    /**
     * Whether the element is currently authorizing the user.
     * @attribute
     */
    authorizing: boolean;
    /**
     * Whether the UI should render the toggle button to toggle the enabled state of the security scheme
     * @attribute
     */
    canToggle?: boolean;
    /**
     * Whether the UI should render the delete button
     * @attribute
     */
    canDelete?: boolean;
    /**
     * Toggles this authorization method enabled state.
     * This does noting when `authorization` is not set.
     */
    toggleEnabled(): void;
    protected handleDelete(): void;
    /**
     * Performs the authorization.
     * This only applies to methods that have any authorization to perform
     * like Oauth 2.
     */
    authorize(): Promise<unknown>;
    /**
     * @returns True when the element is valid.
     */
    checkValidity(): boolean;
    protected renderHeader(): TemplateResult | typeof nothing;
    protected renderAuthInfo(): TemplateResult;
    protected renderToggleSwitch(authorization: IRequestAuthorization): TemplateResult | typeof nothing;
    protected renderTitle(authorization: IRequestAuthorization): TemplateResult;
    protected renderDeleteButton(): TemplateResult | typeof nothing;
}
//# sourceMappingURL=Authorization.d.ts.map