import { TemplateResult } from 'lit';
import type { IApiParameter, IApiResponse, IApiSecurityApiKeySettings, IApiSecurityOAuth1Settings, IApiSecurityOAuth2Flow, IApiSecurityOAuth2Settings, IApiSecurityOpenIdConnectSettings, IApiSecurityScheme, IApiSecurityScope } from '@api-client/core/amf/definitions/Api.js';
import { ApiDocumentationBase } from './ApiDocumentationBase.js';
import '../../define/amf/api-parameter-document.js';
import '../../define/amf/api-response-document.js';
import '../../md/tabs/ui-tabs.js';
import '../../md/tabs/ui-tab.js';
/**
 * A web component that renders the documentation page for an API response object.
 */
export default class ApiSecurityDocument extends ApiDocumentationBase {
    /**
     * When set it opens the parameters section
     * @attribute
     */
    accessor parametersOpened: boolean | undefined;
    /**
     * When set it opens the headers section
     * @attribute
     */
    accessor headersOpened: boolean | undefined;
    /**
     * When set it opens the response section
     * @attribute
     */
    accessor responsesOpened: boolean | undefined;
    /**
     * When set it opens the settings section
     * @attribute
     */
    accessor settingsOpened: boolean | undefined;
    /**
     * The selected status code in the responses section.
     * @attribute
     */
    accessor selectedStatus: string | undefined;
    protected securityValue?: IApiSecurityScheme;
    protected queryParametersValue?: IApiParameter[];
    get securityScheme(): IApiSecurityScheme | undefined;
    set securityScheme(value: IApiSecurityScheme | undefined);
    protected responsesValue?: IApiResponse[];
    constructor();
    processGraph(): Promise<void>;
    /**
     * Queries for the security requirements object.
     */
    querySecurity(): Promise<void>;
    processSecurity(): Promise<void>;
    /**
     * Creates a parameter
     */
    processQueryParameters(): Promise<void>;
    /**
     * Updates the `selectedStatus` if not selected or the current selection doesn't
     * exists in the current list of responses.
     */
    preselectResponse(): void;
    /**
     * A handler for the status code tab selection.
     */
    protected statusCodeHandler(e: CustomEvent): void;
    /**
     * @param grant The oauth2 grant (flow) name
     * @returns Friendly name for the grant.
     */
    getLabelForGrant(grant: string): string;
    render(): TemplateResult;
    protected titleTemplate(scheme: IApiSecurityScheme): TemplateResult;
    /**
     * @returns The template for the query parameters
     */
    protected queryParamsTemplate(): TemplateResult | string;
    /**
     * @returns The template for the headers
     */
    protected headersTemplate(scheme: IApiSecurityScheme): TemplateResult | string;
    protected responseTemplate(): TemplateResult | string;
    /**
     * @param responses The responses to render.
     * @returns The template for the responses selector.
     */
    protected responseTabsTemplate(responses: IApiResponse[]): TemplateResult;
    /**
     * @param responses The responses to render.
     * @returns The template for the currently selected response.
     */
    protected responseContentTemplate(responses: IApiResponse[]): TemplateResult;
    /**
     * @returns The template for the security settings, when required.
     */
    protected settingsTemplate(scheme: IApiSecurityScheme): TemplateResult | string;
    /**
     * @returns The template for API Key security definition.
     */
    protected apiKeySettingsTemplate(settings: IApiSecurityApiKeySettings): TemplateResult;
    /**
     * @param name The name of the API Key parameter
     * @returns The template for API Key header example
     */
    protected apiKeyHeaderExample(name?: string): TemplateResult;
    /**
     * @param name The name of the API Key parameter
     * @returns The template for API Key cookie example
     */
    protected apiKeyCookieExample(name?: string): TemplateResult;
    /**
     * @param name The name of the API Key parameter
     * @returns The template for API Key query parameter example
     */
    protected apiKeyQueryExample(name?: string): TemplateResult;
    /**
     * @returns The template for a single example
     */
    protected renderSecurityExample(value: string): TemplateResult;
    /**
     * @returns The template for API Key security definition.
     */
    protected openIdConnectSettingsTemplate(settings: IApiSecurityOpenIdConnectSettings): TemplateResult | string;
    /**
     * @returns The template for OAuth 2 security definition.
     */
    protected oAuth2SettingsTemplate(settings: IApiSecurityOAuth2Settings): TemplateResult | string;
    /**
     * @returns The template for OAuth 2 flows list.
     */
    protected oAuth2GrantsTemplate(grants: string[]): TemplateResult | string;
    /**
     * @returns The template for OAuth 2 flows list.
     */
    protected oAuth2FlowsTemplate(flows: IApiSecurityOAuth2Flow[]): TemplateResult | string;
    /**
     * @returns The template for an OAuth 2 flow.
     */
    protected oAuth2FlowTemplate(flow: IApiSecurityOAuth2Flow): TemplateResult;
    /**
     * @param grant The grant name
     * @returns The template for OAuth 2 grant title.
     */
    protected grantTitleTemplate(grant?: string): TemplateResult | string;
    /**
     * @param uri The access token URI
     * @returns The template for the access token URI
     */
    protected accessTokenUriTemplate(uri?: string): TemplateResult | string;
    /**
     * @param uri The access token URI
     * @returns The template for the authorization endpoint URI
     */
    protected authorizationUriTemplate(uri?: string): TemplateResult | string;
    /**
     * @param uri The access token URI
     * @returns The template for the refresh token endpoint URI
     */
    protected refreshUriTemplate(uri?: string): TemplateResult | string;
    /**
     * @param scopes The oauth scopes
     * @returns The template for the scopes list
     */
    protected scopesTemplate(scopes?: IApiSecurityScope[]): TemplateResult | string;
    /**
     * @param scope The access token URI
     * @returns The template for an oauth scope
     */
    protected scopeTemplate(scope: IApiSecurityScope): TemplateResult;
    /**
     * @returns The template for OAuth 1 security definition.
     */
    protected oAuth1SettingsTemplate(settings: IApiSecurityOAuth1Settings): TemplateResult;
    /**
     * @param uri The token credentials URI
     * @returns The template for the token credentials URI
     */
    protected tokenCredentialsUriTemplate(uri?: string): TemplateResult | string;
    /**
     * @param signatures The OAuth1 signatures.
     * @returns The template for the OAuth1 signatures.
     */
    protected signaturesTemplate(signatures: string[]): TemplateResult;
}
//# sourceMappingURL=ApiSecurityDocument.element.d.ts.map