import { IAppWindow } from './appWindow';
import { TaskInfo } from './interfaces';
/**
 * Function type that is used to receive the result when a task module is submitted by
 * calling {@link tasks.submitTask tasks.submitTask(result?: string | object, appIds?: string | string[]): void}
 *
 * @param err - If the task module failed, this string contains the reason for failure. If the task module succeeded, this value is the empty string.
 * @param result - On success, this is the value passed to the `result` parameter of {@link tasks.submitTask tasks.submitTask(result?: string | object, appIds?: string | string[]): void}. On failure, this is the empty string.
 */
export type startTaskSubmitHandlerFunctionType = (err: string, result: string | object) => void;
/**
 * @deprecated
 * As of 2.8.0:
 * - For url-based dialogs, please use {@link dialog.url.open dialog.url.open(urlDialogInfo: UrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void} .
 * - For url-based dialogs with bot interaction, please use {@link dialog.url.bot.open dialog.url.bot.open(botUrlDialogInfo: BotUrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}
 * - For Adaptive Card-based dialogs:
 *   - In Teams, please continue to use this function until the new functions in {@link dialog.adaptiveCard} have been fully implemented. You can tell at runtime when they are implemented in Teams by checking
 *     the return value of the {@link dialog.adaptiveCard.isSupported} function. This documentation line will also be removed once they have been fully implemented in Teams.
 *   - In all other hosts, please use {@link dialog.adaptiveCard.open dialog.adaptiveCard.open(cardDialogInfo: CardDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}
 *
 * Allows an app to open the task module.
 *
 * @param taskInfo - An object containing the parameters of the task module
 * @param submitHandler - Handler to call when the task module is completed
 */
export declare function startTask(taskInfo: TaskInfo, submitHandler?: startTaskSubmitHandlerFunctionType): IAppWindow;
/**
 * @deprecated
 * As of TeamsJS v2.0.0, please use {@link dialog.update.resize dialog.update.resize(dimensions: DialogSize): void} instead.
 *
 * Update height/width task info properties.
 *
 * @param taskInfo - An object containing width and height properties
 */
export declare function updateTask(taskInfo: TaskInfo): void;
/**
 * @deprecated
 * As of 2.8.0, please use {@link dialog.url.submit} instead.
 *
 * Submit the task module.
 *
 * @param result - Contains the result to be sent to the bot or the app. Typically a JSON object or a serialized version of it
 * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.
 */
export declare function submitTask(result?: string | object, appIds?: string | string[]): void;
/**
 * Sets the height and width of the {@link TaskInfo} object to the original height and width, if initially specified,
 * otherwise uses the height and width values corresponding to {@link DialogDimension | TaskModuleDimension.Small}
 * @param taskInfo TaskInfo object from which to extract size info, if specified
 * @returns TaskInfo with height and width specified
 */
export declare function getDefaultSizeIfNotProvided(taskInfo: TaskInfo): TaskInfo;
