import { SubmitActionOptions, MSTeamsData, ISubmitAction, SubmitAction } from './submit.js';
import { ITabInfo } from '../../common/tab-info.js';
import '../../common/associated-inputs.js';
import '../base.js';

type CollabStageActionOptions = SubmitActionOptions & {
    data: MSTeamsData<ICollabStageData>;
};
/**
 * Adaptive Card action response type for the {@link CollabStageAction} function.
 */
interface ICollabStageAction extends ISubmitAction {
    /**
     * Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.
     */
    data: MSTeamsData<ICollabStageData>;
}
/**
 * Adaptive Card action that opens a collab stage popout window.
 */
declare class CollabStageAction extends SubmitAction implements ICollabStageAction {
    /**
     * Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.
     */
    data: MSTeamsData<ICollabStageData>;
    constructor(tab?: ITabInfo, options?: SubmitActionOptions);
    static from(options: CollabStageActionOptions): CollabStageAction;
    withData(value: ICollabStageData): this;
    withValue(value: ITabInfo): this;
}
/**
 * Contains the Adaptive Card action data in {@link CollabStageAction}.
 */
interface ICollabStageData {
    type: 'invoke';
    /**
     * Set the value to send with the invoke
     */
    value?: ICollabStageValueData;
}
/**
 * Contains the Adaptive Card action data in {@link CollabStageAction}.
 */
declare class CollabStageData implements ICollabStageData {
    type: 'invoke';
    /**
     * Set the value to send with the invoke
     */
    value?: ICollabStageValueData;
    constructor(value?: ICollabStageValueData);
}
/**
 * Contains the Adaptive Card action value data in {@link CollabStageActionData}.
 */
interface ICollabStageValueData {
    type: 'tab/tabInfoAction';
    /**
     * Information about the iFrame content, rendered in the collab stage popout window.
     */
    tabInfo: ITabInfo;
}
/**
 * Contains the Adaptive Card action value data in {@link CollabStageActionData}.
 */
declare class CollabStageValueData implements ICollabStageValueData {
    type: 'tab/tabInfoAction';
    /**
     * Information about the iFrame content, rendered in the collab stage popout window.
     */
    tabInfo: ITabInfo;
    constructor(tab: ITabInfo);
}

export { CollabStageAction, type CollabStageActionOptions, CollabStageData, CollabStageValueData, type ICollabStageAction, type ICollabStageData, type ICollabStageValueData };
