/* eslint-disable default-param-last */
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable no-unused-vars */
/* eslint-disable class-methods-use-this */
import { AmfSerializer } from '@api-client/core/build/browser.js';
/**
 * An abstract base class for the store implementation that works with API Components.
 */
export class AmfStore {
    /**
     * @param target The event target to dispatch the events on.
     */
    constructor(target = window, graph) {
        this.readonly = true;
        this.target = target;
        let amf = graph;
        if (Array.isArray(graph)) {
            [amf] = graph;
        }
        /**
         * The API serializer
         */
        this.serializer = new AmfSerializer(amf);
    }
    /**
     * @returns The list of domain types for the currently loaded document.
     */
    getDocumentTypes() {
        throw new Error('Not implemented');
    }
    /**
     * Gathers information about the loaded document.
     * This is mainly used by the `api-documentation` element to decide which documentation to render.
     */
    async documentMeta() {
        throw new Error('Not implemented');
    }
    /**
     * @returns API summary for the summary view.
     */
    async apiSummary() {
        throw new Error('Not implemented');
    }
    /**
     * @returns Currently loaded API's protocols
     */
    async apiProtocols() {
        throw new Error('Not implemented');
    }
    /**
     * @returns Currently loaded API's version
     */
    async apiVersion() {
        throw new Error('Not implemented');
    }
    /**
     * Reads an endpoint by its id.
     * @param id The domain id of the endpoint.
     */
    async getEndpoint(id) {
        throw new Error('Not implemented');
    }
    /**
     * Reads an endpoint by its path.
     * @param path The path value of the endpoint or channel name.
     */
    async getEndpointByPath(path) {
        throw new Error('Not implemented');
    }
    /**
     * Lists all endpoints with operations included into the result.
     */
    async listEndpointsWithOperations() {
        throw new Error('Not implemented');
    }
    /**
     * Queries for the list of servers for method, if defined, or endpoint, if defined, or root level
     * @param query Server query options
     * @returns The list of servers for given query.
     */
    async queryServers(query) {
        throw new Error('Not implemented');
    }
    /**
     * Reads the operation model.
     * @param operationId The domain id of the operation to read.
     * @param endpointId Optional endpoint id. When not set it searches through all endpoints.
     */
    async getOperation(operationId, endpointId) {
        throw new Error('Not implemented');
    }
    /**
     * Finds an endpoint that has the operation.
     * @param id Method name or the domain id of the operation to find
     */
    async getOperationParent(id) {
        throw new Error('Not implemented');
    }
    /**
     * Lists the documentation definitions for the API.
     */
    async listDocumentations() {
        throw new Error('Not implemented');
    }
    /**
     * Reads the documentation object from the store.
     * @param id The domain id of the documentation object
     * @returns The read documentation.
     */
    async getDocumentation(id) {
        throw new Error('Not implemented');
    }
    /**
     * Reads the SecurityScheme object from the graph.
     * @param id The domain id of the SecurityScheme
     */
    async getSecurityScheme(id) {
        throw new Error('Not implemented');
    }
    /**
     * Reads the SecurityRequirement object from the graph.
     * @param id The domain id of the SecurityRequirement
     */
    async getSecurityRequirement(id) {
        throw new Error('Not implemented');
    }
    /**
     * Lists the security definitions for the API.
     */
    async listSecurity() {
        throw new Error('Not implemented');
    }
    /**
     * Reads the Request object from the graph.
     * @param id The domain id of the Request
     */
    async getRequest(id) {
        throw new Error('Not implemented');
    }
    /**
     * Reads the response data from the graph.
     * @param id The domain id of the response.
     */
    async getResponse(id) {
        throw new Error('Not implemented');
    }
    /**
     * Reads Payload data from the graph
     * @param id The domain id of the payload
     */
    async getPayload(id) {
        throw new Error('Not implemented');
    }
    /**
     * Lists the type (schema) definitions for the API.
     */
    async listTypes() {
        throw new Error(`Not implemented`);
    }
    /**
     * @param id The domain id of the API type (schema).
     */
    async getType(id) {
        throw new Error('Not implemented');
    }
}
//# sourceMappingURL=AmfStore.js.map