import { PatternMatcher, type sint, UOp } from '../ops.ts'; import type { Renderer } from '../renderer/index.ts'; export declare const get_contraction: (old_shape: sint[], new_shape: sint[]) => number[][] | undefined; export declare const _group_dims: (dims: sint[], max_sizes: number[]) => sint[] | undefined; export declare const _split_dims: (dims: sint[], max_sizes: number[]) => sint[]; export declare const get_grouped_dims: (prefix: any, dims: sint[], max_sizes?: number[], reverse?: boolean) => UOp[]; export declare class IndexContext { idxs: UOp[]; ridxs: UOp[]; acc_num: number; constructor(idxs: UOp[], ridxs: UOp[], acc_num?: number); } export declare const get_index: (ast: UOp, opts: Renderer) => IndexContext; export declare const lower_reduce_axis: (ctx: IndexContext, x: UOp) => UOp; export declare const lower_load_store: (ctx: IndexContext, x: UOp) => UOp; export declare const pm_lowerer: PatternMatcher; export declare const rewrite_shapetracker_with_index: (ast: UOp, opts: Renderer) => UOp;