import { IBidirectionalContainer } from "../container/IBidirectionalContainer"; import { IForwardContainer } from "../container/IForwardContainer"; import { Pair } from "../../utility/Pair"; import { Comparator } from "../../internal/functional/Comparator"; /** * Get the minimum element in range. * * @param range An iterable ranged container. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return Iterator to the minimum element. */ export declare function min_element | IForwardContainer>(range: Range, comp?: Comparator>): IForwardContainer.IteratorType; /** * Get the maximum element in range. * * @param range An iterable ranged container. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return Iterator to the maximum element. */ export declare function max_element | IForwardContainer>(range: Range, comp?: Comparator>): IForwardContainer.IteratorType; /** * Get the minimum & maximum elements in range. * * @param range An iterable ranged container. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return A {@link Pair} of iterators to the minimum & maximum elements. */ export declare function minmax_element | IForwardContainer>(range: Range, comp?: Comparator>): Pair, IForwardContainer.IteratorType>; /** * Test whether two ranges are in permutation relationship. * * @param range1 The 1st iterable ranged container. * @param range2 The 2nd iterable ranged container. * @param pred A binary function predicates two arguments are equal. Default is {@link equal_to}. * * @return Whether permutation or not. */ export declare function is_permutation | IForwardContainer, Range2 extends IForwardContainer.SimilarType>(range1: Range1, range2: Range2, pred?: Comparator>): boolean; /** * Transform to the previous permutation. * * @param range An iterable ranged container. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return Whether the transformation was meaningful. */ export declare function prev_permutation | IBidirectionalContainer>(range: Range, comp?: Comparator>): boolean; /** * Transform to the next permutation. * * @param range An iterable ranged container. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return Whether the transformation was meaningful. */ export declare function next_permutation | IBidirectionalContainer>(range: Range, comp?: Comparator>): boolean; //# sourceMappingURL=mathematics.d.ts.map