import { AmfStore } from './AmfStore.js';
import { type DocumentMeta, type ApiEndPointWithOperationsListItem, type ApiSecuritySchemeListItem, type ApiNodeShapeListItem } from '../types.js';
import { ServersQueryOptions } from '@api-client/core/amf/AmfMixin.js';
import { IAmfDocument, IAmfDomainElement } from '@api-client/core/amf/definitions/Amf.js';
import { IApiSummary, IApiEndPoint, IApiServer, IApiOperation, IApiDocumentation, IApiSecurityScheme, IApiSecurityRequirement, IApiRequest, IApiResponse, IApiPayload } from '@api-client/core/amf/definitions/Api.js';
import type { IShapeUnion } from '@api-client/core/amf/definitions/Shapes.js';
declare const InMemAmfGraphStore_base: (new (...args: any[]) => import("@api-client/core/amf/AmfMixin.js").AmfMixinInterface) & typeof AmfStore;
/**
 * The store that provides an API to read data from the AMF graph model.
 * The graph model is kept in memory in a form of a Raw ld+json graph representation of the
 * AMF's domain model.
 */
export declare class InMemAmfGraphStore extends InMemAmfGraphStore_base {
    /**
     * @param target The event target to dispatch the events on.
     * @param graph The full API model.
     */
    constructor(target?: EventTarget, graph?: IAmfDocument);
    _amfChanged(amf: IAmfDocument): void;
    /**
     * @returns The list of domain types for the currently loaded document.
     */
    getDocumentTypes(): string[];
    /**
     * Gathers information about the loaded document.
     * This is mainly used by the `api-documentation` element to decide which documentation to render.
     */
    documentMeta(): Promise<DocumentMeta>;
    /**
     * @returns API summary for the summary view.
     */
    apiSummary(): Promise<IApiSummary | undefined>;
    /**
     * @returns Currently loaded API's protocols
     */
    apiProtocols(): Promise<string[] | undefined>;
    /**
     * @returns Currently loaded API's version
     */
    apiVersion(): Promise<string | undefined>;
    /**
     * Finds an endpoint in the graph.
     * @param id The domain id of the endpoint.
     * @private
     */
    findEndpoint(id: string): IApiEndPoint | undefined;
    /**
     * Reads an endpoint by its id.
     * @param id The domain id of the endpoint.
     */
    getEndpoint(id: string): Promise<IApiEndPoint | undefined>;
    /**
     * Reads an endpoint by its path.
     * @param path The path value of the endpoint or channel name.
     */
    getEndpointByPath(path: string): Promise<IApiEndPoint | undefined>;
    /**
     * Lists all endpoints with operations included into the result.
     */
    listEndpointsWithOperations(): Promise<ApiEndPointWithOperationsListItem[]>;
    /**
     * 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.
     */
    queryServers(query?: ServersQueryOptions): Promise<IApiServer[]>;
    /**
     * Searches for an operation in the API.
     * @param operationId The domain id of the operation to read.
     * @param endpointId Optional endpoint id. When not set it searches through all endpoints.
     */
    findOperation(operationId: string, endpointId?: string): IApiOperation | undefined;
    /**
     * 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.
     */
    getOperation(operationId: string, endpointId?: string): Promise<IApiOperation>;
    /**
     * Finds an endpoint that has the operation.
     * @param id Method name or the domain id of the operation to find
     */
    getOperationParent(id: string): Promise<IApiEndPoint | undefined>;
    /**
     * Lists the documentation definitions for the API.
     */
    listDocumentations(): Promise<IApiDocumentation[] | undefined>;
    /**
     * Reads the documentation object from the store.
     * @param id The domain id of the documentation object
     * @returns The read documentation.
     */
    getDocumentation(id: string): Promise<IApiDocumentation | undefined>;
    /**
     * Reads the SecurityScheme object from the graph.
     * @param id The domain id of the SecurityScheme
     */
    getSecurityScheme(id: string): Promise<IApiSecurityScheme | undefined>;
    /**
     * Reads the SecurityRequirement object from the graph.
     * @param id The domain id of the SecurityRequirement
     */
    getSecurityRequirement(id: string): Promise<IApiSecurityRequirement | undefined>;
    /**
     * Lists the security definitions for the API.
     */
    listSecurity(): Promise<ApiSecuritySchemeListItem[]>;
    /**
     * Reads the Request object from the graph.
     * @param id The domain id of the Request
     */
    getRequest(id: string): Promise<IApiRequest | undefined>;
    /**
     * Reads the response data from the graph.
     * @param id The domain id of the response.
     */
    getResponse(id: string): Promise<IApiResponse | undefined>;
    /**
     * Finds a payload in a request or a response object.
     */
    findPayload(object: IAmfDomainElement, domainId: string): IApiPayload | undefined;
    /**
     * Reads Payload data from the graph
     * @param id The domain id of the payload
     */
    getPayload(id: string): Promise<IApiPayload | undefined>;
    /**
     * Lists the type (schema) definitions for the API.
     */
    listTypes(): Promise<ApiNodeShapeListItem[]>;
    /**
     * @param id The domain id of the API type (schema).
     */
    getType(id: string): Promise<IShapeUnion | undefined>;
}
export {};
//# sourceMappingURL=InMemAmfGraphStore.d.ts.map