/**
 * Copyright: (c) Myia SAS 2026.
 * This file and its contents are licensed under the AGPLv3 License.
 * Please see the LICENSE file at the root of this repository
 */
import type * as BabelTypes from '@babel/types';
import type { Scope } from '@babel/traverse';
import type { GlobalTraceCallBuilder } from './global-trace-call';
type Types = typeof BabelTypes;
export interface TryFinallyWrapperBuilder {
    buildTryFinally: (scope: Scope, tryBodyStmts: BabelTypes.Statement[], okArgs?: BabelTypes.Expression[]) => {
        threwId: BabelTypes.Identifier;
        tryStmt: BabelTypes.TryStatement;
    };
    buildThrewDecl: (threwId: BabelTypes.Identifier) => BabelTypes.VariableDeclaration;
}
export declare function createTryFinallyWrapperBuilder(t: Types, buildGlobalTraceCall: GlobalTraceCallBuilder): TryFinallyWrapperBuilder;
export {};
