import { nothing, TemplateResult } from 'lit';
import type { IRequestLog } from '@api-client/core/models/RequestLog.js';
import type { IRequest } from '@api-client/core/models/Request.js';
import { ApiNavigationEvent } from '../../events/amf/NavigationEvents.js';
import { Oauth2Credentials } from '../authorization/types.js';
import ApiElement from '../ApiElement.js';
import '../../define/amf/api-request-editor.js';
import '../../define/http/http-request-log.js';
export default class ApiRequest extends ApiElement {
    /**
     * By default application hosting the element must set `domainId`
     * property. When using `api-navigation` element
     * by setting this property the element listens for navigation events
     * and updates the state
     * @attribute
     */
    accessor handleNavigationEvents: boolean | undefined;
    /**
     * When set it renders the URL input above the URL parameters.
     * @attribute
     */
    accessor urlEditor: boolean | undefined;
    /**
     * When set it renders a label with the computed URL.
     * @attribute
     */
    accessor urlLabel: boolean | undefined;
    /**
     * A base URI for the API. To be set if RAML spec is missing `baseUri`
     * declaration and this produces invalid URL input. This information
     * is passed to the URL editor that prefixes the URL with `baseUri` value
     * if passed URL is a relative URL.
     * @attribute
     */
    accessor baseUri: string | undefined;
    /**
     * OAuth2 redirect URI.
     * This value **must** be set in order for OAuth 1/2 to work properly.
     * @attribute
     */
    accessor redirectUri: string | undefined;
    /**
     * If set it computes `hasOptional` property and shows checkbox in the
     * form to show / hide optional properties.
     * @attribute
     */
    accessor allowHideOptional: boolean | undefined;
    /**
     * When set, renders "add custom" item button.
     * If the element is to be used without AMF model this should always
     * be enabled. Otherwise users won't be able to add a parameter.
     * @attribute
     */
    accessor allowCustom: boolean | undefined;
    /**
     * Holds the value of the currently selected server
     * Data type: URI
     * @attribute
     */
    accessor serverValue: string | undefined;
    /**
     * Holds the type of the currently selected server
     * Values: `server` | `slot` | `custom`
     * @attribute
     */
    accessor serverType: string | undefined;
    /**
     * Optional property to set
     * If true, the server selector is not rendered
     * @attribute
     */
    accessor noServerSelector: boolean | undefined;
    /**
     * Optional property to set
     * If true, the server selector custom base URI option is rendered
     * @attribute
     */
    accessor allowCustomBaseUri: boolean | undefined;
    /**
     * List of credentials source
     */
    accessor credentialsSource: Oauth2Credentials[] | undefined;
    protected domainIdValue?: string;
    /**
     * The domain id (AMF's id) of an API operation.
     */
    get domainId(): string | undefined;
    set domainId(value: string | undefined);
    /**
     * The latest response for the current request.
     */
    accessor response: IRequestLog | undefined;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Serializes the state of the request editor.
     *
     * Note this is the same object as the one passed to the detail of the api request event.
     */
    serialize(): Promise<IRequest>;
    /**
     * Clears response panel when the `domainId` change.
     */
    protected domainIdChanged(id?: string): void;
    /**
     * Clears response panel.
     */
    clearResponse(): void;
    /**
     * Handles navigation events and computes available servers.
     *
     * When `handleNavigationEvents` is set then it also manages the selection.
     */
    protected navigationHandler(e: ApiNavigationEvent): void;
    /**
     * Retargets the change event from the editor.
     */
    protected changeHandler(): void;
    protected handleResponse(e: CustomEvent<IRequestLog>): void;
    render(): TemplateResult;
    /**
     * @returns A template for the request panel
     */
    protected requestTemplate(): TemplateResult;
    /**
     * @returns A template for the response view
     */
    protected responseTemplate(): TemplateResult | typeof nothing;
}
//# sourceMappingURL=ApiRequest.element.d.ts.map