import { SkipAPIResponse, SkipMessage, SkipRequestPhase } from '@memberjunction/skip-types';
import { DataContext } from '@memberjunction/data-context';
import { UserInfo } from '@memberjunction/core';
import mssql from 'mssql';
export interface SkipSDKConfig {
    apiUrl?: string;
    apiKey?: string;
    organizationId?: string;
    organizationInfo?: string;
}
export interface SkipCallOptions {
    messages: SkipMessage[];
    conversationId: string;
    dataContext?: DataContext;
    requestPhase?: SkipRequestPhase;
    contextUser: UserInfo;
    dataSource: mssql.ConnectionPool;
    includeEntities?: boolean;
    includeQueries?: boolean;
    includeNotes?: boolean;
    includeRequests?: boolean;
    forceEntityRefresh?: boolean;
    includeCallbackAuth?: boolean;
    onStatusUpdate?: (message: string, responsePhase?: string) => void;
    payload?: Record<string, any>;
}
export interface SkipCallResult {
    success: boolean;
    response?: SkipAPIResponse;
    responsePhase?: string;
    error?: string;
    allResponses?: any[];
}
export declare class SkipSDK {
    private config;
    private static __skipEntitiesCache$;
    private static __lastRefreshTime;
    constructor(config?: SkipSDKConfig);
    chat(options: SkipCallOptions): Promise<SkipCallResult>;
    private buildSkipRequest;
    private buildBaseRequest;
    private buildEntities;
    private buildQueries;
    private buildQueryCategoryPath;
    private buildAgentNotes;
    private buildArtifacts;
    private buildAPIKeys;
    private buildHeaders;
    private refreshSkipEntities;
    private packSingleSkipEntityInfo;
    private packSingleSkipEntityRelationship;
    private packSingleSkipEntityField;
    private packFieldPossibleValues;
    private getFieldDistinctValues;
    private processMessages;
    private isDelegationMessage;
}
//# sourceMappingURL=skip-sdk.d.ts.map