import { StreamException } from '../exceptions21'; import * as filters from './filters'; import type { Music21Object } from '../base'; import type { GeneralNote, NotRest } from '../note'; import type { Part, Stream, Voice } from '../stream'; import type { ClassFilterType } from '../types'; export declare class StreamIteratorException extends StreamException { } export declare class StreamIteratorBase { srcStream: Stream; index: number; srcStreamElements: T[]; streamLength: number; iterSection: string; cleanupOnStop: boolean; restoreActiveSites: boolean; overrideDerivation: any; filters: filters.StreamFilter[]; protected _len: number; protected _matchingElements: T[]; sectionIndex: number; activeInformation: any; constructor(srcStream: Stream, { filterList, restoreActiveSites, activeInformation, ignoreSorting, }?: { filterList?: any[]; restoreActiveSites?: boolean; activeInformation?: any; ignoreSorting?: boolean; }); [Symbol.iterator](): Generator; clone(): StreamIteratorBase; map(func: (el: T) => any): any[]; first(): T; last(): T; get(k: number): T; get length(): number; updateActiveInformation(): void; reset(): void; resetCaches(): void; cleanup(): void; matchingElements(): T[]; matchesFilters(e: Music21Object): {}; stream(): Stream; get activeElementList(): any; /** * Returns a new StreamIterator with the filter added. */ addFilter(newFilter: filters.StreamFilter): StreamIteratorBase; /** * Returns a new StreamIterator with the filter removed. * * Silently ignores */ removeFilter(oldFilter: filters.StreamFilter): StreamIteratorBase; getElementsByClass(classFilterList: ClassFilterType): StreamIteratorBase; getElementsNotOfClass(classFilterList: ClassFilterType): StreamIteratorBase; getElementsByOffset(offsetStart: number, offsetEnd?: number, offsetOptions?: filters.OffsetFilterOptions): StreamIteratorBase; get notes(): StreamIteratorBase; get notesAndRests(): StreamIteratorBase; get parts(): StreamIteratorBase; get spanners(): StreamIteratorBase; get voices(): StreamIteratorBase; } export declare class StreamIterator extends StreamIteratorBase { [Symbol.iterator](): Generator; } export declare class OffsetIterator extends StreamIteratorBase { [Symbol.iterator](): Generator; } export declare class RecursiveIterator extends StreamIteratorBase { returnSelf: boolean; includeSelf: boolean; ignoreSorting: boolean; iteratorStartOffsetInHierarchy: number; childRecursiveIterator: RecursiveIterator; constructor(srcStream: Stream, { filterList, restoreActiveSites, activeInformation, streamsOnly, includeSelf, ignoreSorting, }?: { filterList?: any[]; restoreActiveSites?: boolean; activeInformation?: any; streamsOnly?: boolean; includeSelf?: boolean; ignoreSorting?: boolean; }); reset(): void; [Symbol.iterator](): Generator; matchingElements(): T[]; /** * Returns a stack of RecursiveIterators at this point in the iteration. * Last is most recent. */ iteratorStack(): RecursiveIterator[]; /** * Returns a stack of Streams at this point. Last is most recent. */ streamStack(): Stream[]; /** * Called on the current iterator, returns the current offset * in the hierarchy. or undefined if we are not currently iterating. */ currentHierarchyOffset(): number; getElementsByClass(classFilterList: string): RecursiveIterator; getElementsByClass(classFilterList: string[]): RecursiveIterator; getElementsByClass(classFilterList: (new () => TT)): RecursiveIterator; getElementsByClass(classFilterList: (new () => T)[]): RecursiveIterator; get notes(): RecursiveIterator; get notesAndRests(): RecursiveIterator; get parts(): RecursiveIterator; get voices(): RecursiveIterator; } //# sourceMappingURL=iterator.d.ts.map