import { NumberRuleChecker } from './number-rule-checker'; import { GuardResult } from '../../core/guard-result'; export declare class NumberIsFibonacci extends NumberRuleChecker<{ type: 'isFibonacci'; allowNegative?: boolean; }> { constructor(rule: { type: 'isFibonacci'; allowNegative?: boolean; }, value: number); /** * @override */ exec(): GuardResult; /** * Checks if number is a Fibonacci number. * @remarks n is a Fibonacci number if n is equal or greater than zero, and of the following conditions is fulfilled: * - 5n²+4 is a perfect square. * - 5n²-4 is a perfect square. */ private isFibonacci; /** * Checks if number is a NegaFibonacci number. * @remarks n is a NegaFibonacci number if one of the following conditions is fulfilled: * - 5n²+4 is a perfect square. * - 5n²-4 is a perfect square. */ private isNegaFibonacci; /** * Checks if number is a perfect square. * @remarks Perfect squares are the squares of the whole numbers: 1, 4, 9, 16, 25, 36, 49... * @param value */ private isPerfectSquare; }