/**
 * Copyright IBM Corp. 2024, 2025
 */
import { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
import { VCSFileInfo } from '../../vcs/models/vcs-file-info.model.js';
import { OpenApiDocumentObject, OpenApiPathItemObject, OpenAPISecurityRequirement, OpenApiSpecComponents, OpenAPISpecComponentsSchemaObject, OpenApiSpecExampleObj, OpenApiTagObject, OpenAPIV2Components, OpenAPIV2ComponentsObject, OpenAPIV2HostPath } from '../interfaces/api-spec-handler.interface.js';
import { APIAdditionalPropertyKeys, ProjectAssetInfo, SelectionItem } from './api-context.store.model.js';
import { AssetInfo } from '../../lfs/models/asset-info.model.js';
import { OpenApiTypesEnum } from '../models/openapi-types.enum.js';
import { APICFileInfo } from '../../apic-mode/models/apic-file-info.model.js';
export interface APIContextAction {
    startLoading: () => void;
    finishLoading: () => void;
    setData: (data: string | null) => void;
    setContext: (fileAccessor: FileSystemFileHandle | VCSFileInfo | APICFileInfo) => void;
    setApiVersion: (version: OpenApiTypesEnum | null) => void;
    reset: () => void;
    setPolicySequences: (policySeqRefs: AssetInfo[]) => void;
    setApiAdditionalProperties: (key: APIAdditionalPropertyKeys, asset?: ProjectAssetInfo) => void;
    setActiveApiAdditionalProperty: (key?: APIAdditionalPropertyKeys) => void;
    setIsDetailedPropertyFormViewOpen: (isDetailedFormViewOpen: boolean) => void;
    updateInfo: (info: OpenAPIV3.InfoObject | OpenAPIV3_1.InfoObject | OpenAPIV2.InfoObject) => Promise<void>;
    addServer: (server: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject) => Promise<void>;
    updateServer: (oldServer: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject, newServer: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject) => Promise<void>;
    deleteServer: (server: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject) => Promise<void>;
    addComponentExample: (Key: string, ExampleObj: OpenApiSpecExampleObj) => Promise<void>;
    updateComponentExample: (PrevKey: string, CurrentKey: string, ExampleObj: OpenApiSpecExampleObj) => Promise<void>;
    deleteComponentExample: (key: string) => Promise<void>;
    addComponentSchema: (key: string, newSchema: OpenAPISpecComponentsSchemaObject) => Promise<void>;
    updateComponentSchema: (prevKey: string, newKey: string, updatedSchema: OpenAPISpecComponentsSchemaObject) => Promise<void>;
    deleteComponentSchema: (key: string) => Promise<void>;
    addPath: (key: string, pathItem: OpenApiPathItemObject) => Promise<void>;
    updatePath: (PrevKey: string, CurrentKey: string, pathObj: OpenApiPathItemObject) => Promise<void>;
    deletePath: (key: string) => Promise<void>;
    addTag: (tag: OpenApiTagObject) => Promise<void>;
    updateTag: (prevKey: string, tag: OpenApiTagObject) => Promise<void>;
    deleteTag: (tag: string) => Promise<void>;
    addSecurity: (security: OpenAPISecurityRequirement[]) => Promise<void>;
    updateSecurity: (prevSecuityName: string, security: OpenAPISecurityRequirement) => Promise<void>;
    deleteSecurity: (securityName: string) => Promise<void>;
    addOrUpdateDocument: (document: OpenApiDocumentObject) => Promise<void>;
    deleteDocument: () => Promise<void>;
    addComponent: (key: string, object: OpenApiSpecComponents, typeOfComponent: keyof OpenAPIV3.ComponentsObject | keyof OpenAPIV3_1.ComponentsObject) => Promise<void>;
    updateComponent: (prevKey: string, currentKey: string, object: OpenApiSpecComponents, typeOfComponent: keyof OpenAPIV3.ComponentsObject | keyof OpenAPIV3_1.ComponentsObject) => Promise<void>;
    deleteComponent: (key: string, typeOfComponent: keyof OpenAPIV3.ComponentsObject | keyof OpenAPIV3_1.ComponentsObject) => Promise<void>;
    setComponent: (data: Record<string, OpenApiSpecComponents>, typeOfComponent: keyof OpenAPIV3.ComponentsObject | keyof OpenAPIV3_1.ComponentsObject) => Promise<void>;
    addSelection: (selectionItem: SelectionItem) => void;
    updateSelection: (position: number, updatedSelectionItem: SelectionItem) => void;
    setSelectionItems: (selectionItems: Array<SelectionItem>) => void;
    removeSelectionAfterPosition: (position: number) => void;
    setAdditionalDataV2: (name: string | string[], type: OpenAPIV2HostPath) => Promise<void>;
    addComponentV2: (key: string, object: OpenAPIV2ComponentsObject, typeOfComponent: OpenAPIV2Components) => Promise<void>;
    updateComponentV2: (prevKey: string, currentKey: string, object: OpenAPIV2ComponentsObject, typeOfComponent: OpenAPIV2Components) => Promise<void>;
    deleteComponentV2: (key: string, typeOfComponent: OpenAPIV2Components) => Promise<void>;
    setComponentV2: (data: Record<string, OpenAPIV2ComponentsObject>, typeOfComponent: OpenAPIV2Components) => Promise<void>;
}
//# sourceMappingURL=api-context.store.action.d.ts.map