/**
 * @module botbuilder-m365
 */
/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { Plan } from './Planner';
import { TurnState } from './TurnState';
import { DefaultTurnState } from './DefaultTurnStateManager';
import { TurnContext } from 'botbuilder';
import { OpenAIClient } from './OpenAIClients';
import { PromptTemplate } from './Prompts';
import { Moderator } from './Moderator';
import { ConfiguredAIOptions } from './AI';
export interface OpenAIModeratorOptions {
    apiKey: string;
    moderate: 'input' | 'output' | 'both';
    organization?: string;
    endpoint?: string;
    model?: string;
}
export declare class OpenAIModerator<TState extends TurnState = DefaultTurnState> implements Moderator<TState> {
    private readonly _options;
    private readonly _client;
    constructor(options: OpenAIModeratorOptions);
    reviewPrompt(context: TurnContext, state: TState, prompt: PromptTemplate, options: ConfiguredAIOptions<TState>): Promise<Plan | undefined>;
    reviewPlan(context: TurnContext, state: TState, plan: Plan): Promise<Plan>;
    get options(): OpenAIModeratorOptions;
    protected createClient(options: OpenAIModeratorOptions): OpenAIClient;
    private createModeration;
}
//# sourceMappingURL=OpenAIModerator.d.ts.map