import { AIBotRequestBody, AIBotRequestResponse, ANSWER_STATUS } from './schema/aibot';
import { SENTIMENT_MODE, SentimentData } from './schema/sentiment';
/**
 * This is a singleton class
 */
declare class WeixinOpenAI {
    private token;
    private encodingAESKey;
    private static instance;
    static get Instance(): WeixinOpenAI;
    /**
     * This method needs to be called before every other call on
     * the instance, this will pass the token and encodingAESKey
     * to weixin openai api for authorization
     * @param token token
     * @param encodingAESKey encoding aes key
     */
    static init(token: string, encodingAESKey: string): void;
    /**
     * ---------------------------------------------------
     * Instance method below
     * ---------------------------------------------------
     */
    /**
     * use token and encoding aes key to call weixin openai api
     * @param token token
     * @param encodingAESKey encoding aes key
     */
    private constructor();
    /**
     * Call Weixin OpenAI aibot api to get the response of a give message
     * @param msg query message needs to be answered
     * @param username user who ask the question
     */
    aiBot(query: string, userId: string): Promise<AIBotRequestResponse>;
    sentiment(query: string, userId: string, mode?: SENTIMENT_MODE): Promise<SentimentData>;
    private request;
    private encodeJwt;
}
export { WeixinOpenAI, ANSWER_STATUS, AIBotRequestBody, AIBotRequestResponse, SentimentData, };
//# sourceMappingURL=index.d.ts.map