import { Options } from 'ts-macro';
import { CreateTwoslashOptions, TwoslashExecuteOptions, TwoslashInstance } from 'twoslash';

interface TsmSpecificOptions {
    /**
     * TS Macro Compiler options
     */
    tsmCompilerOptions?: Partial<Options>;
}
interface CreateTwoslashTsmOptions extends CreateTwoslashOptions, TsmSpecificOptions {
    /**
     * Render the generated code in the output instead of the TSM file
     *
     * @default false
     */
    debugShowGeneratedCode?: boolean;
}
interface TwoslashTsmExecuteOptions extends TwoslashExecuteOptions {
}
/**
 * Create a twoslasher instance that add additional support for TSM.
 */
declare function createTwoslasher(createOptions?: CreateTwoslashTsmOptions): TwoslashInstance;

export { type CreateTwoslashTsmOptions, type TsmSpecificOptions, type TwoslashTsmExecuteOptions, createTwoslasher };
