import { Model } from './model'; import { MessageLevel } from './msglevel'; import { Tree } from './tree'; export declare namespace MIP { type BranchingTechnique = 'ffv' | 'lfv' | 'mfv' | 'dth' | 'pch' | 'first_fractional' | 'last_fractional' | 'most_fractional' | 'driebeck_tomlin' | 'hybrid_pseudocost'; type BacktrackingTechnique = 'dfs' | 'bfs' | 'blb' | 'bph' | 'depth_first' | 'breadth_first' | 'best_bound' | 'best_projection'; type PreprocessingTechnique = 'all' | 'none' | 'root'; interface Options { msgLevel?: MessageLevel; branching?: BranchingTechnique; backtracking?: BacktrackingTechnique; tolInt?: number; tolObj?: number; limitTime?: number; logFreq?: number; logDelay?: number; callback?: (tree: Tree) => void; callbackPtr?: FunctionPtr; preprocessing?: PreprocessingTechnique; gapMIP?: number; cutsMIR?: boolean; cutsGomory?: boolean; cutsCover?: boolean; cutsClique?: boolean; presolve?: boolean; binarize?: boolean; heuristicFP?: boolean; heuristicPS?: boolean; limitProxy?: number; heuristicRound?: boolean; } type ReturnCode = 'ok' | 'bounds_incorrect' | 'no_root_basis' | 'no_primal_feasible' | 'no_dual_feasible' | 'failure' | 'mip_gap_tolerance' | 'time_limit' | 'stopped'; function solve(model: Model, opts: Options): ReturnCode; }