import { DemonicPact, DemonicPactScoringContext, DemonicPactTree, CombatStyle, UnlockEvaluation, DemonicPactOptimizerOptions, DemonicPactOptimizationResult } from "./DemonicPact.model";
export type DemonicPactScorer = (pact: DemonicPact, context: DemonicPactScoringContext) => number;
export declare function getInitialUnlockedPactIds(tree: DemonicPactTree): string[];
export declare function getPactsByStyle(tree: DemonicPactTree, style: CombatStyle, includeUniversal?: boolean): DemonicPact[];
export declare function getPactById(tree: DemonicPactTree, pactId: string): DemonicPact | undefined;
/**
 *  Calculates the total points spent on a given selection of pacts based on their official point costs.
 * @param tree  The demonic pact tree containing all pacts.
 * @param unlockedPactIds  The IDs of the pacts that have been unlocked.
 * @returns The total points spent on the unlocked pacts.
 */
export declare function calculateSpentPoints(tree: DemonicPactTree, unlockedPactIds: readonly string[]): number;
/**
 *  Determines if a pact can be unlocked given the current tree state and already unlocked pacts.
 * @param tree
 * @param unlockedPactIds
 * @param pactId
 * @returns
 */
export declare function canUnlockPact(tree: DemonicPactTree, unlockedPactIds: readonly string[], pactId: string): UnlockEvaluation;
export declare function getUnlockablePacts(tree: DemonicPactTree, unlockedPactIds: readonly string[], style?: CombatStyle): DemonicPact[];
export declare function optimizeDemonicPactLoadout(tree: DemonicPactTree, options: DemonicPactOptimizerOptions): DemonicPactOptimizationResult;
//# sourceMappingURL=DemonicPact.d.ts.map