import { IBidirectionalContainer } from "../container/IBidirectionalContainer"; import { IForwardContainer } from "../container/IForwardContainer"; import { IRandomAccessContainer } from "../container/IRandomAccessContainer"; import { IBidirectionalIterator } from "../../iterator/IBidirectionalIterator"; import { IForwardIterator } from "../../iterator/IForwardIterator"; import { IPointer } from "../../functional/IPointer"; import { BinaryPredicator } from "../../internal/functional/BinaryPredicator"; import { UnaryPredicator } from "../../internal/functional/UnaryPredicator"; import { Writeonly } from "../../internal/functional/Writeonly"; declare type UnaryOperatorInferrer | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>> = (val: IForwardContainer.ValueType) => IPointer.ValueType; declare type BinaryOperatorInferrer | IForwardContainer, Range2 extends Array | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>> = (x: IForwardContainer.ValueType, y: IForwardContainer.ValueType) => IPointer.ValueType; /** * Copy elements in range. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * * @return Output Iterator of the last position by advancing. */ export declare function copy | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator): OutputIterator; /** * Copy *n* elements. * * @param range An iterable ranged container. * @param n Number of elements to copy. * @param output Output iterator of the first position. * * @return Output Iterator of the last position by advancing. */ export declare function copy_n | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, n: number, output: OutputIterator): OutputIterator; /** * Copy specific elements by a condition. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * @param pred A function predicates the specific condition. * * @return Output Iterator of the last position by advancing. */ export declare function copy_if | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, pred: UnaryPredicator>): OutputIterator; /** * Copy elements reversely. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * * @return Output Iterator of the last position by advancing. */ export declare function copy_backward | IBidirectionalContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator): OutputIterator; /** * Fill range elements * * @param range An iterable ranged container. * @param val The value to fill. * * @return Output Iterator of the last position by advancing. */ export declare function fill | IForwardContainer>(range: Range, value: IForwardContainer.ValueType): void; /** * Fill *n* elements. * * @param range An iterable ranged container. * @param n Number of elements to fill. * @param val The value to fill. * * @return Output Iterator of the last position by advancing. */ export declare function fill_n | IForwardContainer>(range: Range, n: number, value: IForwardContainer.ValueType): IForwardContainer.IteratorType; /** * Transform elements. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * @param op Unary function determines the transform. * * @return Output Iterator of the last position by advancing. */ export declare function transform | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, result: OutputIterator, op: UnaryOperatorInferrer): OutputIterator; /** * Transform elements. * * @param range1 The 1st iterable ranged container. * @param range2 The 2nd iterable ranged container. * @param output Output iterator of the first position. * @param op Binary function determines the transform. * * @return Output Iterator of the last position by advancing. */ export declare function transform | IForwardContainer, Range2 extends Array | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range1, first: Range2, result: OutputIterator, op: BinaryOperatorInferrer): OutputIterator; /** * Generate range elements. * * @param range An iterable ranged container. * @param gen The generator function. */ export declare function generate | IForwardContainer>(range: Range, gen: () => IForwardContainer.ValueType): void; /** * Generate *n* elements. * * @param range An iterable ranged container. * @param n Number of elements to generate. * @param gen The generator function. * * @return Forward Iterator to the last position by advancing. */ export declare function generate_n | IForwardContainer>(range: Range, n: number, gen: () => IForwardContainer.ValueType): IForwardContainer.IteratorType; /** * Remove duplicated elements in sorted range. * * @param range An iterable ranged container. * @param pred A binary function predicates two arguments are equal. Default is {@link equal_to}. * * @return Input iterator to the last element not removed. */ export declare function unique | IForwardContainer>(range: Range, pred?: BinaryPredicator>): IForwardContainer.IteratorType; /** * Copy elements in range without duplicates. * * @param range An iterable ranged container. * @param output Output iterator of the last position. * @param pred A binary function predicates two arguments are equal. Default is {@link equal_to}. * * @return Output Iterator of the last position by advancing. */ export declare function unique_copy | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, pred?: BinaryPredicator>): OutputIterator; /** * Remove specific value in range. * * @param range An iterable ranged container. * @param val The specific value to remove. * * @return Iterator tho the last element not removed. */ export declare function remove | IForwardContainer>(range: Range, val: IForwardContainer.ValueType): IForwardContainer.IteratorType; /** * Remove elements in range by a condition. * * @param range An iterable ranged container. * @param pred An unary function predicates remove. * * @return Iterator tho the last element not removed. */ export declare function remove_if | IForwardContainer>(range: Range, pred: UnaryPredicator>): IForwardContainer.IteratorType; /** * Copy range removing specific value. * * @param range An iterable ranged container. * @param output Output iterator of the last position. * @param val The condition predicates remove. * * @return Output Iterator of the last position by advancing. */ export declare function remove_copy | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, val: IForwardContainer.ValueType): OutputIterator; /** * Copy range removing elements by a condition. * * @param range An iterable ranged container. * @param output Output iterator of the last position. * @param pred An unary function predicates remove. * * @return Output Iterator of the last position by advancing. */ export declare function remove_copy_if | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, pred: UnaryPredicator>): OutputIterator; /** * Replace specific value in range. * * @param range An iterable ranged container. * @param old_val Specific value to change * @param new_val Specific value to be changed. */ export declare function replace | IForwardContainer>(range: Range, old_val: IForwardContainer.ValueType, new_val: IForwardContainer.ValueType): void; /** * Replace specific condition in range. * * @param range An iterable ranged container. * @param pred An unary function predicates the change. * @param new_val Specific value to be changed. */ export declare function replace_if | IForwardContainer>(range: Range, pred: UnaryPredicator>, new_val: IForwardContainer.ValueType): void; /** * Copy range replacing specific value. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * @param old_val Specific value to change * @param new_val Specific value to be changed. * * @return Output Iterator of the last position by advancing. */ export declare function replace_copy | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, old_val: IForwardContainer.ValueType, new_val: IForwardContainer.ValueType): OutputIterator; /** * Copy range replacing specfic condition. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * @param pred An unary function predicates the change. * @param new_val Specific value to be changed. * * @return Output Iterator of the last position by advancing. */ export declare function replace_copy_if | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator, pred: UnaryPredicator>, new_val: IForwardContainer.ValueType): OutputIterator; /** * Swap values of two ranges. * * @param range1 The 1st iterable ranged container. * @param range2 The 2nd iterable ranged container. * * @return Forward Iterator of the last position of the 2nd range by advancing. */ export declare function swap_ranges | IForwardContainer, Range2 extends IForwardContainer.SimilarType>(range1: Range1, range2: Range2): IForwardContainer.IteratorType; /** * Reverse elements in range. * * @param range An iterable ranged container. */ export declare function reverse | IBidirectionalContainer>(range: Range): void; /** * Copy reversed elements in range. * * @param range An iterable ranged container. * @param output Output iterator of the first position. * * @return Output Iterator of the last position by advancing. */ export declare function reverse_copy | IBidirectionalContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, output: OutputIterator): OutputIterator; export declare function shift_left | IForwardContainer>(range: Range, n: number): void; export declare function shift_right | IBidirectionalContainer>(range: Range, n: number): void; /** * Rotate elements in range. * * @param range An iterable ranged container. * @param middle Input iteartor of the initial position of the right side. * * @return Input iterator of the final position in the left side; *middle*. */ export declare function rotate | IForwardContainer>(range: Range, middle: IForwardContainer.IteratorType): IForwardContainer.IteratorType; /** * Copy rotated elements in range. * * @param range An iterable ranged container. * @param middle Input iteartor of the initial position of the right side. * @param output Output iterator of the last position. * * @return Output Iterator of the last position by advancing. */ export declare function rotate_copy | IForwardContainer, OutputIterator extends Writeonly, OutputIterator>>>(range: Range, middle: IForwardContainer.IteratorType, output: OutputIterator): OutputIterator; /** * Shuffle elements in range. * * @param range An iterable ranged container. */ export declare function shuffle | IRandomAccessContainer>(range: Range): void; export {}; //# sourceMappingURL=modifiers.d.ts.map