import type { Signal, SignalValue, ThreadGenerator, TimingFunction } from '@revideo/core'; import { SignalContext } from '@revideo/core'; import type { CodeHighlighter } from './CodeHighlighter'; import type { CodePoint, CodeRange } from './CodeRange'; import type { CodeScope, CodeTag, PossibleCodeScope } from './CodeScope'; interface CodeModifier { (code: string): TOwner; (code: string, duration: number): ThreadGenerator; (duration?: number): TagGenerator; } interface CodeInsert { (point: CodePoint, code: string): TOwner; (point: CodePoint, code: string, duration: number): ThreadGenerator; } interface CodeRemove { (range: CodeRange): TOwner; (range: CodeRange, duration: number): ThreadGenerator; } interface CodeReplace { (range: CodeRange, code: string): TOwner; (range: CodeRange, code: string, duration: number): ThreadGenerator; } type TagGenerator = (strings: TemplateStringsArray, ...tags: CodeTag[]) => ThreadGenerator; export interface CodeSignalHelpers { edit(duration?: number): TagGenerator; append: CodeModifier; prepend: CodeModifier; insert: CodeInsert; remove: CodeRemove; replace: CodeReplace; } export type CodeSignal = Signal> & CodeSignalHelpers; export declare class CodeSignalContext extends SignalContext implements CodeSignalHelpers { private readonly highlighter?; private readonly progress; constructor(initial: PossibleCodeScope, owner: TOwner, highlighter?: SignalValue | undefined); tweener(value: SignalValue, duration: number, timingFunction: TimingFunction): ThreadGenerator; edit(duration?: number): TagGenerator; append(code: string): TOwner; append(code: string, duration: number): ThreadGenerator; append(duration?: number): TagGenerator; prepend(code: string): TOwner; prepend(code: string, duration: number): ThreadGenerator; prepend(duration?: number): TagGenerator; insert(point: CodePoint, code: string): TOwner; insert(point: CodePoint, code: string, duration: number): ThreadGenerator; remove(range: CodeRange): TOwner; remove(range: CodeRange, duration: number): ThreadGenerator; replace(range: CodeRange, code: string): TOwner; replace(range: CodeRange, code: string, duration: number): ThreadGenerator; private replaceTween; private editTween; private appendTween; private prependTween; parse(value: PossibleCodeScope): CodeScope; toSignal(): CodeSignal; } export declare function codeSignal(): PropertyDecorator; export {}; //# sourceMappingURL=CodeSignal.d.ts.map