import { ApolloClient } from "@apollo/client/core/index.js";
import type { NormalizedCacheObject } from "@apollo/client/core/index.js";
import * as Types from "./generated/graphql-types.js";
import { AgentOptions, AgentResult, StreamAgentOptions, ToolHandler } from "./types/agent.js";
import { AgentStreamEvent } from "./types/ui-events.js";
export type { AgentOptions, AgentResult, StreamAgentOptions, ToolCallResult, UsageInfo, AgentError, } from "./types/agent.js";
export type { AgentStreamEvent } from "./types/ui-events.js";
export interface RetryConfig {
    /** Maximum number of retry attempts (default: 5) */
    maxAttempts?: number;
    /** Initial delay in milliseconds (default: 300) */
    initialDelay?: number;
    /** Maximum delay in milliseconds (default: 30000) */
    maxDelay?: number;
    /** HTTP status codes that should trigger a retry (default: [429, 502, 503, 504]) */
    retryableStatusCodes?: number[];
    /** Whether to use jitter in delay calculation (default: true) */
    jitter?: boolean;
    /** Callback when a retry is attempted */
    onRetry?: (attempt: number, error: any, operation: any) => void;
}
export interface GraphlitClientOptions {
    organizationId?: string;
    environmentId?: string;
    jwtSecret?: string;
    ownerId?: string;
    userId?: string;
    apiUri?: string;
    /** Retry configuration for network errors */
    retryConfig?: RetryConfig;
}
declare class Graphlit {
    client: ApolloClient<NormalizedCacheObject> | undefined;
    token: string | undefined;
    private apiUri;
    private organizationId;
    private environmentId;
    private ownerId;
    private userId;
    private jwtSecret;
    private retryConfig;
    private openaiClient?;
    private anthropicClient?;
    private googleClient?;
    private groqClient?;
    private cerebrasClient?;
    private cohereClient?;
    private mistralClient?;
    private bedrockClient?;
    private deepseekClient?;
    constructor(organizationIdOrOptions?: string | GraphlitClientOptions, environmentId?: string, jwtSecret?: string, ownerId?: string, userId?: string, apiUri?: string);
    refreshClient(): void;
    /**
     * Set a custom OpenAI client instance for streaming
     * @param client - OpenAI client instance (e.g., new OpenAI({ apiKey: "..." }))
     */
    setOpenAIClient(client: any): void;
    /**
     * Set a custom Anthropic client instance for streaming
     * @param client - Anthropic client instance (e.g., new Anthropic({ apiKey: "..." }))
     */
    setAnthropicClient(client: any): void;
    /**
     * Set a custom Google Generative AI client instance for streaming
     * @param client - Google GenerativeAI client instance (e.g., new GoogleGenerativeAI(apiKey))
     */
    setGoogleClient(client: any): void;
    /**
     * Set a custom Groq client instance for streaming
     * @param client - Groq client instance (e.g., new Groq({ apiKey: "..." }))
     */
    setGroqClient(client: any): void;
    /**
     * Set a custom Cerebras client instance for streaming (OpenAI-compatible)
     * @param client - OpenAI client instance configured for Cerebras (e.g., new OpenAI({ apiKey: "...", baseURL: "https://api.cerebras.ai/v1" }))
     */
    setCerebrasClient(client: any): void;
    /**
     * Set a custom Cohere client instance for streaming
     * @param client - Cohere client instance (e.g., new CohereClient({ token: "..." }))
     */
    setCohereClient(client: any): void;
    /**
     * Set a custom Mistral client instance for streaming
     * @param client - Mistral client instance (e.g., new Mistral({ apiKey: "..." }))
     */
    setMistralClient(client: any): void;
    /**
     * Set a custom Bedrock client instance for streaming
     * @param client - BedrockRuntimeClient instance (e.g., new BedrockRuntimeClient({ region: "us-east-2" }))
     */
    setBedrockClient(client: any): void;
    /**
     * Set a custom Deepseek client instance for streaming
     * @param client - OpenAI client instance configured for Deepseek (e.g., new OpenAI({ baseURL: "https://api.deepseek.com", apiKey: "..." }))
     */
    setDeepseekClient(client: any): void;
    /**
     * Update retry configuration and refresh the Apollo client
     * @param retryConfig - New retry configuration
     */
    setRetryConfig(retryConfig: RetryConfig): void;
    private generateToken;
    getProject(): Promise<Types.GetProjectQuery>;
    updateProject(project: Types.ProjectUpdateInput): Promise<Types.UpdateProjectMutation>;
    lookupProjectUsage(correlationId: string): Promise<Types.LookupUsageQuery>;
    lookupProjectCredits(correlationId: string): Promise<Types.LookupCreditsQuery>;
    queryProjectTokens(startDate: Types.Scalars["DateTime"]["input"], duration: Types.Scalars["TimeSpan"]["input"]): Promise<Types.QueryTokensQuery>;
    queryProjectUsage(startDate: Types.Scalars["DateTime"]["input"], duration: Types.Scalars["TimeSpan"]["input"], names?: string[], excludedNames?: string[], offset?: Types.Scalars["Int"]["input"], limit?: Types.Scalars["Int"]["input"]): Promise<Types.QueryUsageQuery>;
    queryProjectCredits(startDate: Types.Scalars["DateTime"]["input"], duration: Types.Scalars["TimeSpan"]["input"]): Promise<Types.QueryCreditsQuery>;
    sendNotification(connector: Types.IntegrationConnectorInput, text: string, textType?: Types.TextTypes): Promise<Types.SendNotificationMutation>;
    mapWeb(uri: string, allowedPaths?: string[], excludedPaths?: string[], correlationId?: string): Promise<Types.MapWebQuery>;
    searchWeb(text: string, service?: Types.SearchServiceTypes, limit?: number, correlationId?: string): Promise<Types.SearchWebQuery>;
    createAlert(alert: Types.AlertInput, correlationId?: string): Promise<Types.CreateAlertMutation>;
    updateAlert(alert: Types.AlertUpdateInput): Promise<Types.UpdateAlertMutation>;
    deleteAlert(id: string): Promise<Types.DeleteAlertMutation>;
    deleteAlerts(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteAlertsMutation>;
    deleteAllAlerts(filter?: Types.AlertFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllAlertsMutation>;
    enableAlert(id: string): Promise<Types.EnableAlertMutation>;
    disableAlert(id: string): Promise<Types.DisableAlertMutation>;
    getAlert(id: string): Promise<Types.GetAlertQuery>;
    queryAlerts(filter?: Types.AlertFilter): Promise<Types.QueryAlertsQuery>;
    countAlerts(filter?: Types.AlertFilter): Promise<Types.CountAlertsQuery>;
    createCollection(collection: Types.CollectionInput): Promise<Types.CreateCollectionMutation>;
    updateCollection(collection: Types.CollectionUpdateInput): Promise<Types.UpdateCollectionMutation>;
    deleteCollection(id: string): Promise<Types.DeleteCollectionMutation>;
    deleteCollections(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteCollectionsMutation>;
    deleteAllCollections(filter?: Types.CollectionFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllCollectionsMutation>;
    addContentsToCollections(contents: Types.EntityReferenceInput[], collections: Types.EntityReferenceInput[]): Promise<Types.AddContentsToCollectionsMutation>;
    removeContentsFromCollection(contents: Types.EntityReferenceInput[], collection: Types.EntityReferenceInput): Promise<Types.RemoveContentsFromCollectionMutation>;
    getCollection(id: string): Promise<Types.GetCollectionQuery>;
    queryCollections(filter?: Types.CollectionFilter): Promise<Types.QueryCollectionsQuery>;
    countCollections(filter?: Types.CollectionFilter): Promise<Types.CountCollectionsQuery>;
    describeImage(prompt: string, uri: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.DescribeImageMutation>;
    describeEncodedImage(prompt: string, mimeType: string, data: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.DescribeEncodedImageMutation>;
    screenshotPage(uri: string, maximumHeight?: number, isSynchronous?: boolean, workflow?: Types.EntityReferenceInput, collections?: Types.EntityReferenceInput[], correlationId?: string): Promise<Types.ScreenshotPageMutation>;
    ingestTextBatch(batch: Types.TextContentInput[], textType: Types.TextTypes, collections?: Types.EntityReferenceInput[], observations?: Types.ObservationReferenceInput[], correlationId?: string): Promise<Types.IngestTextBatchMutation>;
    ingestBatch(uris: string[], workflow?: Types.EntityReferenceInput, collections?: Types.EntityReferenceInput[], observations?: Types.ObservationReferenceInput[], correlationId?: string): Promise<Types.IngestBatchMutation>;
    ingestUri(uri: string, name?: string, id?: string, isSynchronous?: boolean, workflow?: Types.EntityReferenceInput, collections?: Types.EntityReferenceInput[], observations?: Types.ObservationReferenceInput[], correlationId?: string): Promise<Types.IngestUriMutation>;
    ingestText(text: string, name?: string, textType?: Types.TextTypes, uri?: string, id?: string, isSynchronous?: boolean, workflow?: Types.EntityReferenceInput, collections?: Types.EntityReferenceInput[], observations?: Types.ObservationReferenceInput[], correlationId?: string): Promise<Types.IngestTextMutation>;
    ingestMemory(text: string, name?: string, textType?: Types.TextTypes, id?: string, collections?: Types.EntityReferenceInput[], correlationId?: string): Promise<Types.IngestMemoryMutation>;
    ingestEvent(markdown: string, name?: string, description?: string, eventDate?: Types.Scalars["DateTime"]["input"], id?: string, collections?: Types.EntityReferenceInput[], correlationId?: string): Promise<Types.IngestEventMutation>;
    ingestEncodedFile(name: string, data: string, mimeType: string, fileCreationDate?: Types.Scalars["DateTime"]["input"], fileModifiedDate?: Types.Scalars["DateTime"]["input"], id?: string, isSynchronous?: boolean, workflow?: Types.EntityReferenceInput, collections?: Types.EntityReferenceInput[], observations?: Types.ObservationReferenceInput[], correlationId?: string): Promise<Types.IngestEncodedFileMutation>;
    updateContent(content: Types.ContentUpdateInput): Promise<Types.UpdateContentMutation>;
    deleteContent(id: string): Promise<Types.DeleteContentMutation>;
    deleteContents(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteContentsMutation>;
    deleteAllContents(filter?: Types.ContentFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllContentsMutation>;
    summarizeText(summarization: Types.SummarizationStrategyInput, text: string, textType?: Types.TextTypes, correlationId?: string): Promise<Types.SummarizeTextMutation>;
    summarizeContents(summarizations: Types.SummarizationStrategyInput[], filter?: Types.ContentFilter, correlationId?: string): Promise<Types.SummarizeContentsMutation>;
    extractText(prompt: string, text: string, tools: Types.ToolDefinitionInput[], specification?: Types.EntityReferenceInput, textType?: Types.TextTypes, correlationId?: string): Promise<Types.ExtractTextMutation>;
    extractContents(prompt: string, tools: Types.ToolDefinitionInput[], specification?: Types.EntityReferenceInput, filter?: Types.ContentFilter, correlationId?: string): Promise<Types.ExtractContentsMutation>;
    publishContents(publishPrompt: string, connector: Types.ContentPublishingConnectorInput, summaryPrompt?: string, summarySpecification?: Types.EntityReferenceInput, publishSpecification?: Types.EntityReferenceInput, name?: string, filter?: Types.ContentFilter, workflow?: Types.EntityReferenceInput, isSynchronous?: boolean, includeDetails?: boolean, correlationId?: string): Promise<Types.PublishContentsMutation>;
    publishText(text: string, textType: Types.TextTypes, connector: Types.ContentPublishingConnectorInput, name?: string, workflow?: Types.EntityReferenceInput, isSynchronous?: boolean, correlationId?: string): Promise<Types.PublishTextMutation>;
    getContent(id: string): Promise<Types.GetContentQuery>;
    lookupContents(ids: string[]): Promise<Types.LookupContentsResults>;
    queryContents(filter?: Types.ContentFilter): Promise<Types.QueryContentsQuery>;
    queryContentsFacets(filter?: Types.ContentFilter): Promise<Types.QueryContentsFacetsQuery>;
    queryContentsGraph(filter?: Types.ContentFilter): Promise<Types.QueryContentsGraphQuery>;
    countContents(filter?: Types.ContentFilter): Promise<Types.CountContentsQuery>;
    isContentDone(id: string): Promise<Types.IsContentDoneQuery>;
    createConversation(conversation: Types.ConversationInput, correlationId?: string): Promise<Types.CreateConversationMutation>;
    updateConversation(conversation: Types.ConversationUpdateInput): Promise<Types.UpdateConversationMutation>;
    deleteConversation(id: string): Promise<Types.DeleteConversationMutation>;
    deleteConversations(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteConversationsMutation>;
    deleteAllConversations(filter?: Types.ConversationFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllConversationsMutation>;
    clearConversation(id: string): Promise<Types.ClearConversationMutation>;
    closeConversation(id: string): Promise<Types.CloseConversationMutation>;
    getConversation(id: string): Promise<Types.GetConversationQuery>;
    queryConversations(filter?: Types.ConversationFilter): Promise<Types.QueryConversationsQuery>;
    countConversations(filter?: Types.ConversationFilter): Promise<Types.CountConversationsQuery>;
    reviseImage(prompt: string, uri: string, id?: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.ReviseImageMutation>;
    reviseEncodedImage(prompt: string, mimeType: string, data: string, id?: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.ReviseEncodedImageMutation>;
    reviseText(prompt: string, text: string, id?: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.ReviseTextMutation>;
    reviseContent(prompt: string, content: Types.EntityReferenceInput, id?: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.ReviseContentMutation>;
    prompt(prompt?: string, mimeType?: string, data?: string, specification?: Types.EntityReferenceInput, messages?: Types.ConversationMessageInput[], correlationId?: string): Promise<Types.PromptMutation>;
    retrieveSources(prompt: string, filter?: Types.ContentFilter, augmentedFilter?: Types.ContentFilter, retrievalStrategy?: Types.RetrievalStrategyInput, rerankingStrategy?: Types.RerankingStrategyInput, correlationId?: string): Promise<Types.RetrieveSourcesMutation>;
    formatConversation(prompt: string, id?: string, specification?: Types.EntityReferenceInput, tools?: Types.ToolDefinitionInput[], includeDetails?: boolean, correlationId?: string): Promise<Types.FormatConversationMutation>;
    completeConversation(completion: string, id: string, correlationId?: string): Promise<Types.CompleteConversationMutation>;
    askGraphlit(prompt: string, type?: Types.SdkTypes, id?: string, specification?: Types.EntityReferenceInput, correlationId?: string): Promise<Types.AskGraphlitMutation>;
    branchConversation(id: string): Promise<Types.BranchConversationMutation>;
    promptConversation(prompt: string, id?: string, specification?: Types.EntityReferenceInput, mimeType?: string, data?: string, tools?: Types.ToolDefinitionInput[], requireTool?: boolean, includeDetails?: boolean, correlationId?: string): Promise<Types.PromptConversationMutation>;
    continueConversation(id: string, responses: Types.ConversationToolResponseInput[], correlationId?: string): Promise<Types.ContinueConversationMutation>;
    publishConversation(id: string, connector: Types.ContentPublishingConnectorInput, name?: string, workflow?: Types.EntityReferenceInput, isSynchronous?: boolean, correlationId?: string): Promise<Types.PublishConversationMutation>;
    suggestConversation(id: string, count?: number, correlationId?: string): Promise<Types.SuggestConversationMutation>;
    queryOneDriveFolders(properties: Types.OneDriveFoldersInput, folderId?: string): Promise<Types.QueryOneDriveFoldersQuery>;
    querySharePointFolders(properties: Types.SharePointFoldersInput, libraryId: string, folderId?: string): Promise<Types.QuerySharePointFoldersQuery>;
    querySharePointLibraries(properties: Types.SharePointLibrariesInput): Promise<Types.QuerySharePointLibrariesQuery>;
    queryMicrosoftTeamsTeams(properties: Types.MicrosoftTeamsTeamsInput): Promise<Types.QueryMicrosoftTeamsTeamsQuery>;
    queryMicrosoftTeamsChannels(properties: Types.MicrosoftTeamsChannelsInput, teamId: string): Promise<Types.QueryMicrosoftTeamsChannelsQuery>;
    querySlackChannels(properties: Types.SlackChannelsInput): Promise<Types.QuerySlackChannelsQuery>;
    queryLinearProjects(properties: Types.LinearProjectsInput): Promise<Types.QueryLinearProjectsQuery>;
    queryNotionDatabases(properties: Types.NotionDatabasesInput): Promise<Types.QueryNotionDatabasesQuery>;
    queryNotionPages(properties: Types.NotionPagesInput, identifier: string): Promise<Types.QueryNotionPagesQuery>;
    createFeed(feed: Types.FeedInput, correlationId?: string): Promise<Types.CreateFeedMutation>;
    updateFeed(feed: Types.FeedUpdateInput): Promise<Types.UpdateFeedMutation>;
    deleteFeed(id: string): Promise<Types.DeleteFeedMutation>;
    deleteFeeds(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteFeedsMutation>;
    deleteAllFeeds(filter?: Types.FeedFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllFeedsMutation>;
    enableFeed(id: string): Promise<Types.EnableFeedMutation>;
    disableFeed(id: string): Promise<Types.DeleteFeedMutation>;
    getFeed(id: string): Promise<Types.GetFeedQuery>;
    queryFeeds(filter?: Types.FeedFilter): Promise<Types.QueryFeedsQuery>;
    countFeeds(filter?: Types.FeedFilter): Promise<Types.CountFeedsQuery>;
    feedExists(filter?: Types.FeedFilter): Promise<Types.FeedExistsQuery>;
    isFeedDone(id: string): Promise<Types.IsFeedDoneQuery>;
    promptSpecifications(prompt: string, ids: string[]): Promise<Types.PromptSpecificationsMutation>;
    createSpecification(specification: Types.SpecificationInput): Promise<Types.CreateSpecificationMutation>;
    updateSpecification(specification: Types.SpecificationUpdateInput): Promise<Types.UpdateSpecificationMutation>;
    upsertSpecification(specification: Types.SpecificationInput): Promise<Types.UpsertSpecificationMutation>;
    deleteSpecification(id: string): Promise<Types.DeleteSpecificationMutation>;
    deleteSpecifications(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteSpecificationsMutation>;
    deleteAllSpecifications(filter?: Types.SpecificationFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllSpecificationsMutation>;
    getSpecification(id: string): Promise<Types.GetSpecificationQuery>;
    querySpecifications(filter?: Types.SpecificationFilter): Promise<Types.QuerySpecificationsQuery>;
    countSpecifications(filter?: Types.SpecificationFilter): Promise<Types.CountSpecificationsQuery>;
    specificationExists(filter?: Types.SpecificationFilter): Promise<Types.SpecificationExistsQuery>;
    queryModels(filter?: Types.ModelFilter): Promise<Types.QueryModelsQuery>;
    createWorkflow(workflow: Types.WorkflowInput): Promise<Types.CreateWorkflowMutation>;
    updateWorkflow(workflow: Types.WorkflowUpdateInput): Promise<Types.UpdateWorkflowMutation>;
    upsertWorkflow(workflow: Types.WorkflowInput): Promise<Types.UpsertWorkflowMutation>;
    deleteWorkflow(id: string): Promise<Types.DeleteWorkflowMutation>;
    deleteWorkflows(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteWorkflowsMutation>;
    deleteAllWorkflows(filter?: Types.WorkflowFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllWorkflowsMutation>;
    getWorkflow(id: string): Promise<Types.GetWorkflowQuery>;
    queryWorkflows(filter?: Types.WorkflowFilter): Promise<Types.QueryWorkflowsQuery>;
    countWorkflows(filter?: Types.WorkflowFilter): Promise<Types.CountWorkflowsQuery>;
    workflowExists(filter?: Types.WorkflowFilter): Promise<Types.WorkflowExistsQuery>;
    createUser(user: Types.UserInput): Promise<Types.CreateUserMutation>;
    updateUser(user: Types.UserUpdateInput): Promise<Types.UpdateUserMutation>;
    deleteUser(id: string): Promise<Types.DeleteUserMutation>;
    getUser(): Promise<Types.GetUserQuery>;
    queryUsers(filter?: Types.UserFilter): Promise<Types.QueryUsersQuery>;
    countUsers(filter?: Types.UserFilter): Promise<Types.CountUsersQuery>;
    enableUser(id: string): Promise<Types.EnableUserMutation>;
    disableUser(id: string): Promise<Types.DeleteUserMutation>;
    createCategory(category: Types.CategoryInput): Promise<Types.CreateCategoryMutation>;
    updateCategory(category: Types.CategoryUpdateInput): Promise<Types.UpdateCategoryMutation>;
    upsertCategory(category: Types.CategoryInput): Promise<Types.UpsertCategoryMutation>;
    deleteCategory(id: string): Promise<Types.DeleteCategoryMutation>;
    deleteCategories(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteCategoriesMutation>;
    deleteAllCategories(filter?: Types.CategoryFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllCategoriesMutation>;
    getCategory(id: string): Promise<Types.GetCategoryQuery>;
    queryCategories(filter?: Types.CategoryFilter): Promise<Types.QueryCategoriesQuery>;
    createLabel(label: Types.LabelInput): Promise<Types.CreateLabelMutation>;
    updateLabel(label: Types.LabelUpdateInput): Promise<Types.UpdateLabelMutation>;
    upsertLabel(label: Types.LabelInput): Promise<Types.UpsertLabelMutation>;
    deleteLabel(id: string): Promise<Types.DeleteLabelMutation>;
    deleteLabels(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteLabelsMutation>;
    deleteAllLabels(filter?: Types.LabelFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllLabelsMutation>;
    getLabel(id: string): Promise<Types.GetLabelQuery>;
    queryLabels(filter?: Types.LabelFilter): Promise<Types.QueryLabelsQuery>;
    createPerson(person: Types.PersonInput): Promise<Types.CreatePersonMutation>;
    updatePerson(person: Types.PersonUpdateInput): Promise<Types.UpdatePersonMutation>;
    deletePerson(id: string): Promise<Types.DeletePersonMutation>;
    deletePersons(ids: string[], isSynchronous?: boolean): Promise<Types.DeletePersonsMutation>;
    deleteAllPersons(filter?: Types.PersonFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllPersonsMutation>;
    getPerson(id: string): Promise<Types.GetPersonQuery>;
    queryPersons(filter?: Types.PersonFilter): Promise<Types.QueryPersonsQuery>;
    createOrganization(organization: Types.OrganizationInput): Promise<Types.CreateOrganizationMutation>;
    updateOrganization(organization: Types.OrganizationUpdateInput): Promise<Types.UpdateOrganizationMutation>;
    deleteOrganization(id: string): Promise<Types.DeleteOrganizationMutation>;
    deleteOrganizations(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteOrganizationsMutation>;
    deleteAllOrganizations(filter?: Types.OrganizationFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllOrganizationsMutation>;
    getOrganization(id: string): Promise<Types.GetOrganizationQuery>;
    queryOrganizations(filter?: Types.OrganizationFilter): Promise<Types.QueryOrganizationsQuery>;
    createPlace(place: Types.PlaceInput): Promise<Types.CreatePlaceMutation>;
    updatePlace(place: Types.PlaceUpdateInput): Promise<Types.UpdatePlaceMutation>;
    deletePlace(id: string): Promise<Types.DeletePlaceMutation>;
    deletePlaces(ids: string[], isSynchronous?: boolean): Promise<Types.DeletePlacesMutation>;
    deleteAllPlaces(filter?: Types.PlaceFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllPlacesMutation>;
    getPlace(id: string): Promise<Types.GetPlaceQuery>;
    queryPlaces(filter?: Types.PlaceFilter): Promise<Types.QueryPlacesQuery>;
    createEvent(event: Types.EventInput): Promise<Types.CreateEventMutation>;
    updateEvent(event: Types.EventUpdateInput): Promise<Types.UpdateEventMutation>;
    deleteEvent(id: string): Promise<Types.DeleteEventMutation>;
    deleteEvents(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteEventsMutation>;
    deleteAllEvents(filter?: Types.EventFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllEventsMutation>;
    getEvent(id: string): Promise<Types.GetEventQuery>;
    queryEvents(filter?: Types.EventFilter): Promise<Types.QueryEventsQuery>;
    createProduct(product: Types.ProductInput): Promise<Types.CreateProductMutation>;
    updateProduct(product: Types.ProductUpdateInput): Promise<Types.UpdateProductMutation>;
    deleteProduct(id: string): Promise<Types.DeleteProductMutation>;
    deleteProducts(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteProductsMutation>;
    deleteAllProducts(filter?: Types.ProductFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllProductsMutation>;
    getProduct(id: string): Promise<Types.GetProductQuery>;
    queryProducts(filter?: Types.ProductFilter): Promise<Types.QueryProductsQuery>;
    createRepo(repo: Types.RepoInput): Promise<Types.CreateRepoMutation>;
    updateRepo(repo: Types.RepoUpdateInput): Promise<Types.UpdateRepoMutation>;
    deleteRepo(id: string): Promise<Types.DeleteRepoMutation>;
    deleteRepos(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteReposMutation>;
    deleteAllRepos(filter?: Types.RepoFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllReposMutation>;
    getRepo(id: string): Promise<Types.GetRepoQuery>;
    queryRepos(filter?: Types.RepoFilter): Promise<Types.QueryReposQuery>;
    createSoftware(software: Types.SoftwareInput): Promise<Types.CreateSoftwareMutation>;
    updateSoftware(software: Types.SoftwareUpdateInput): Promise<Types.UpdateSoftwareMutation>;
    deleteSoftware(id: string): Promise<Types.DeleteSoftwareMutation>;
    deleteSoftwares(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteSoftwaresMutation>;
    deleteAllSoftwares(filter?: Types.SoftwareFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllSoftwaresMutation>;
    getSoftware(id: string): Promise<Types.GetSoftwareQuery>;
    querySoftwares(filter?: Types.SoftwareFilter): Promise<Types.QuerySoftwaresQuery>;
    createMedicalCondition(MedicalCondition: Types.MedicalConditionInput): Promise<Types.CreateMedicalConditionMutation>;
    updateMedicalCondition(MedicalCondition: Types.MedicalConditionUpdateInput): Promise<Types.UpdateMedicalConditionMutation>;
    deleteMedicalCondition(id: string): Promise<Types.DeleteMedicalConditionMutation>;
    deleteMedicalConditions(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalConditionsMutation>;
    deleteAllMedicalConditions(filter?: Types.MedicalConditionFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalConditionsMutation>;
    getMedicalCondition(id: string): Promise<Types.GetMedicalConditionQuery>;
    queryMedicalConditions(filter?: Types.MedicalConditionFilter): Promise<Types.QueryMedicalConditionsQuery>;
    createMedicalGuideline(MedicalGuideline: Types.MedicalGuidelineInput): Promise<Types.CreateMedicalGuidelineMutation>;
    updateMedicalGuideline(MedicalGuideline: Types.MedicalGuidelineUpdateInput): Promise<Types.UpdateMedicalGuidelineMutation>;
    deleteMedicalGuideline(id: string): Promise<Types.DeleteMedicalGuidelineMutation>;
    deleteMedicalGuidelines(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalGuidelinesMutation>;
    deleteAllMedicalGuidelines(filter?: Types.MedicalGuidelineFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalGuidelinesMutation>;
    getMedicalGuideline(id: string): Promise<Types.GetMedicalGuidelineQuery>;
    queryMedicalGuidelines(filter?: Types.MedicalGuidelineFilter): Promise<Types.QueryMedicalGuidelinesQuery>;
    createMedicalDrug(MedicalDrug: Types.MedicalDrugInput): Promise<Types.CreateMedicalDrugMutation>;
    updateMedicalDrug(MedicalDrug: Types.MedicalDrugUpdateInput): Promise<Types.UpdateMedicalDrugMutation>;
    deleteMedicalDrug(id: string): Promise<Types.DeleteMedicalDrugMutation>;
    deleteMedicalDrugs(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalDrugsMutation>;
    deleteAllMedicalDrugs(filter?: Types.MedicalDrugFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalDrugsMutation>;
    getMedicalDrug(id: string): Promise<Types.GetMedicalDrugQuery>;
    queryMedicalDrugs(filter?: Types.MedicalDrugFilter): Promise<Types.QueryMedicalDrugsQuery>;
    createMedicalIndication(MedicalIndication: Types.MedicalIndicationInput): Promise<Types.CreateMedicalIndicationMutation>;
    updateMedicalIndication(MedicalIndication: Types.MedicalIndicationUpdateInput): Promise<Types.UpdateMedicalIndicationMutation>;
    deleteMedicalIndication(id: string): Promise<Types.DeleteMedicalIndicationMutation>;
    deleteMedicalIndications(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalIndicationsMutation>;
    deleteAllMedicalIndications(filter?: Types.MedicalIndicationFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalIndicationsMutation>;
    getMedicalIndication(id: string): Promise<Types.GetMedicalIndicationQuery>;
    queryMedicalIndications(filter?: Types.MedicalIndicationFilter): Promise<Types.QueryMedicalIndicationsQuery>;
    createMedicalContraindication(MedicalContraindication: Types.MedicalContraindicationInput): Promise<Types.CreateMedicalContraindicationMutation>;
    updateMedicalContraindication(MedicalContraindication: Types.MedicalContraindicationUpdateInput): Promise<Types.UpdateMedicalContraindicationMutation>;
    deleteMedicalContraindication(id: string): Promise<Types.DeleteMedicalContraindicationMutation>;
    deleteMedicalContraindications(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalContraindicationsMutation>;
    deleteAllMedicalContraindications(filter?: Types.MedicalContraindicationFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalContraindicationsMutation>;
    getMedicalContraindication(id: string): Promise<Types.GetMedicalContraindicationQuery>;
    queryMedicalContraindications(filter?: Types.MedicalContraindicationFilter): Promise<Types.QueryMedicalContraindicationsQuery>;
    createMedicalTest(MedicalTest: Types.MedicalTestInput): Promise<Types.CreateMedicalTestMutation>;
    updateMedicalTest(MedicalTest: Types.MedicalTestUpdateInput): Promise<Types.UpdateMedicalTestMutation>;
    deleteMedicalTest(id: string): Promise<Types.DeleteMedicalTestMutation>;
    deleteMedicalTests(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalTestsMutation>;
    deleteAllMedicalTests(filter?: Types.MedicalTestFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalTestsMutation>;
    getMedicalTest(id: string): Promise<Types.GetMedicalTestQuery>;
    queryMedicalTests(filter?: Types.MedicalTestFilter): Promise<Types.QueryMedicalTestsQuery>;
    createMedicalDevice(MedicalDevice: Types.MedicalDeviceInput): Promise<Types.CreateMedicalDeviceMutation>;
    updateMedicalDevice(MedicalDevice: Types.MedicalDeviceUpdateInput): Promise<Types.UpdateMedicalDeviceMutation>;
    deleteMedicalDevice(id: string): Promise<Types.DeleteMedicalDeviceMutation>;
    deleteMedicalDevices(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalDevicesMutation>;
    deleteAllMedicalDevices(filter?: Types.MedicalDeviceFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalDevicesMutation>;
    getMedicalDevice(id: string): Promise<Types.GetMedicalDeviceQuery>;
    queryMedicalDevices(filter?: Types.MedicalDeviceFilter): Promise<Types.QueryMedicalDevicesQuery>;
    createMedicalProcedure(MedicalProcedure: Types.MedicalProcedureInput): Promise<Types.CreateMedicalProcedureMutation>;
    updateMedicalProcedure(MedicalProcedure: Types.MedicalProcedureUpdateInput): Promise<Types.UpdateMedicalProcedureMutation>;
    deleteMedicalProcedure(id: string): Promise<Types.DeleteMedicalProcedureMutation>;
    deleteMedicalProcedures(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalProceduresMutation>;
    deleteAllMedicalProcedures(filter?: Types.MedicalProcedureFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalProceduresMutation>;
    getMedicalProcedure(id: string): Promise<Types.GetMedicalProcedureQuery>;
    queryMedicalProcedures(filter?: Types.MedicalProcedureFilter): Promise<Types.QueryMedicalProceduresQuery>;
    createMedicalStudy(MedicalStudy: Types.MedicalStudyInput): Promise<Types.CreateMedicalStudyMutation>;
    updateMedicalStudy(MedicalStudy: Types.MedicalStudyUpdateInput): Promise<Types.UpdateMedicalStudyMutation>;
    deleteMedicalStudy(id: string): Promise<Types.DeleteMedicalStudyMutation>;
    deleteMedicalStudies(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalStudiesMutation>;
    deleteAllMedicalStudies(filter?: Types.MedicalStudyFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalStudiesMutation>;
    getMedicalStudy(id: string): Promise<Types.GetMedicalStudyQuery>;
    queryMedicalStudies(filter?: Types.MedicalStudyFilter): Promise<Types.QueryMedicalStudiesQuery>;
    createMedicalDrugClass(MedicalDrugClass: Types.MedicalDrugClassInput): Promise<Types.CreateMedicalDrugClassMutation>;
    updateMedicalDrugClass(MedicalDrugClass: Types.MedicalDrugClassUpdateInput): Promise<Types.UpdateMedicalDrugClassMutation>;
    deleteMedicalDrugClass(id: string): Promise<Types.DeleteMedicalDrugClassMutation>;
    deleteMedicalDrugClasses(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalDrugClassesMutation>;
    deleteAllMedicalDrugClasses(filter?: Types.MedicalDrugClassFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalDrugClassesMutation>;
    getMedicalDrugClass(id: string): Promise<Types.GetMedicalDrugClassQuery>;
    queryMedicalDrugClasses(filter?: Types.MedicalDrugClassFilter): Promise<Types.QueryMedicalDrugClassesQuery>;
    createMedicalTherapy(MedicalTherapy: Types.MedicalTherapyInput): Promise<Types.CreateMedicalTherapyMutation>;
    updateMedicalTherapy(MedicalTherapy: Types.MedicalTherapyUpdateInput): Promise<Types.UpdateMedicalTherapyMutation>;
    deleteMedicalTherapy(id: string): Promise<Types.DeleteMedicalTherapyMutation>;
    deleteMedicalTherapies(ids: string[], isSynchronous?: boolean): Promise<Types.DeleteMedicalTherapiesMutation>;
    deleteAllMedicalTherapies(filter?: Types.MedicalTherapyFilter, isSynchronous?: boolean, correlationId?: string): Promise<Types.DeleteAllMedicalTherapiesMutation>;
    getMedicalTherapy(id: string): Promise<Types.GetMedicalTherapyQuery>;
    queryMedicalTherapies(filter?: Types.MedicalTherapyFilter): Promise<Types.QueryMedicalTherapiesQuery>;
    createObservation(observation: Types.ObservationInput): Promise<Types.CreateObservationMutation>;
    updateObservation(observation: Types.ObservationUpdateInput): Promise<Types.UpdateObservationMutation>;
    deleteObservation(id: string): Promise<Types.DeleteObservationMutation>;
    /**
     * Creates an event handler that supports UI streaming mode
     * @internal
     */
    /**
     * Check if streaming is supported with the current configuration
     * @param specification - Optional specification to check compatibility
     * @returns true if streaming is available, false otherwise
     */
    supportsStreaming(specification?: Types.Specification): boolean;
    /**
     * Execute an agent with non-streaming response
     * @param prompt - The user prompt
     * @param conversationId - Optional conversation ID to continue
     * @param specification - Optional specification for the LLM
     * @param tools - Optional tool definitions
     * @param toolHandlers - Optional tool handler functions
     * @param options - Agent options
     * @param mimeType - Optional MIME type for multimodal input
     * @param data - Optional base64 encoded data for multimodal input
     * @param contentFilter - Optional filter for content retrieval during conversation
     * @param augmentedFilter - Optional filter to force specific content into LLM context
     * @param correlationId - Optional correlation ID for tracking
     * @returns Complete agent result with message and tool calls
     */
    promptAgent(prompt: string, conversationId?: string, specification?: Types.EntityReferenceInput, tools?: Types.ToolDefinitionInput[], toolHandlers?: Record<string, ToolHandler>, options?: AgentOptions, mimeType?: string, data?: string, // base64 encoded
    contentFilter?: Types.ContentCriteriaInput, augmentedFilter?: Types.ContentCriteriaInput, correlationId?: string): Promise<AgentResult>;
    /**
     * Execute an agent with streaming response
     * @param prompt - The user prompt
     * @param onEvent - Event handler for streaming events
     * @param conversationId - Optional conversation ID to continue
     * @param specification - Optional specification for the LLM
     * @param tools - Optional tool definitions
     * @param toolHandlers - Optional tool handler functions
     * @param options - Stream agent options
     * @param mimeType - Optional MIME type for multimodal input
     * @param data - Optional base64 encoded data for multimodal input
     * @param contentFilter - Optional filter for content retrieval during conversation
     * @param augmentedFilter - Optional filter to force specific content into LLM context
     * @param correlationId - Optional correlation ID for tracking
     * @throws Error if streaming is not supported
     */
    streamAgent(prompt: string, onEvent: (event: AgentStreamEvent) => void, conversationId?: string, specification?: Types.EntityReferenceInput, tools?: Types.ToolDefinitionInput[], toolHandlers?: Record<string, ToolHandler>, options?: StreamAgentOptions, mimeType?: string, data?: string, // base64 encoded
    contentFilter?: Types.ContentCriteriaInput, augmentedFilter?: Types.ContentCriteriaInput, correlationId?: string): Promise<void>;
    /**
     * Execute the streaming agent workflow with tool calling loop
     */
    private executeStreamingAgent;
    /**
     * Build message array for LLM from conversation history
     */
    private buildMessageArray;
    /**
     * Execute tools during streaming with proper event emission
     */
    private executeToolsInStream;
    /**
     * Format tool results for API
     */
    private formatToolResults;
    /**
     * Fallback to non-streaming when streaming is not available
     */
    private fallbackToNonStreaming;
    /**
     * Stream with OpenAI client
     */
    private streamWithOpenAI;
    /**
     * Stream with Anthropic client
     */
    private streamWithAnthropic;
    /**
     * Stream with Google client
     */
    private streamWithGoogle;
    /**
     * Stream with Groq client (OpenAI-compatible)
     */
    private streamWithGroq;
    /**
     * Stream with Cerebras client (OpenAI-compatible)
     */
    private streamWithCerebras;
    /**
     * Stream with Cohere client
     */
    private streamWithCohere;
    /**
     * Stream with Mistral client
     */
    private streamWithMistral;
    /**
     * Stream with Bedrock client
     */
    private streamWithBedrock;
    /**
     * Stream with Deepseek client
     */
    private streamWithDeepseek;
    private executeToolsForPromptAgent;
    private prettyPrintGraphQLError;
    private mutateAndCheckError;
    private queryAndCheckError;
}
export { Graphlit };
export * as Types from "./generated/graphql-types.js";
