import type { IAmfDocument } from '@api-client/core/amf/definitions/Amf.js';
import type { DocumentMeta, ApiEndPointWithOperationsListItem, ApiSecuritySchemeListItem, ApiNodeShapeListItem } from '../types.js';
import { AmfSerializer } from '@api-client/core/amf/AmfSerializer.js';
import type { IApiSummary, IApiEndPoint, IApiServer, IApiOperation, IApiDocumentation, IApiSecurityScheme, IApiSecurityRequirement, IApiRequest, IApiResponse, IApiPayload } from '@api-client/core/amf/definitions/Api.js';
import type { ServersQueryOptions } from '@api-client/core/amf/AmfMixin.js';
import type { IShapeUnion } from '@api-client/core/amf/definitions/Shapes.js';
/**
 * An abstract base class for the store implementation that works with API Components.
 */
export declare class AmfStore {
    /**
     * For future use.
     * Indicates that the store is read only.
     */
    readonly: boolean;
    target: EventTarget;
    serializer: AmfSerializer;
    /**
     * @param target The event target to dispatch the events on.
     */
    constructor(target?: EventTarget, graph?: IAmfDocument);
    /**
     * @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>;
    /**
     * 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[]>;
    /**
     * 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 | undefined>;
    /**
     * 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>;
    /**
     * 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>;
}
//# sourceMappingURL=AmfStore.d.ts.map