import { ConfigAuth } from './config-auth.js';
import { CacheInfo } from '../cache-info.js';
import { TaskModuleResponse } from '../task-module/task-module-response.js';
import '../suggested-actions.js';
import '../card/card-action.js';
import '../task-module/task-module-continue-response.js';
import '../task-module/task-module-response-base.js';
import '../task-module/task-module-task-info.js';
import '../attachment/attachment.js';
import '../task-module/task-module-message-response.js';

/**
 *
 * An interface container for the Config response payload
 */
type ConfigResponse = {
    /**
     * @member {CacheInfo} [cacheInfo] The data of the ConfigResponse cache, including cache type and cache duration.
     */
    cacheInfo?: CacheInfo;
    /**
     * @member {ConfigResponseConfig} [config] The ConfigResponse config of BotConfigAuth or TaskModuleResponse
     */
    config: ConfigAuth | TaskModuleResponse['task'];
    /**
     * @member {string} [responseType] The type of response 'config'.
     */
    responseType: 'config';
};

export type { ConfigResponse };
