import { BlendMode, PatternInfo } from './psd'; export interface Abr { brushes: Brush[]; samples: SampleInfo[]; patterns: PatternInfo[]; } export interface SampleInfo { id: string; bounds: { x: number; y: number; w: number; h: number; }; alpha: Uint8Array; } export interface BrushDynamics { control: 'off' | 'fade' | 'pen pressure' | 'pen tilt' | 'stylus wheel' | 'initial direction' | 'direction' | 'initial rotation' | 'rotation'; steps: number; jitter: number; minimum: number; } export interface BrushShape { name?: string; size: number; angle: number; roundness: number; hardness?: number; spacingOn: boolean; spacing: number; flipX: boolean; flipY: boolean; sampledData?: string; } export interface Brush { name: string; shape: BrushShape; shapeDynamics?: { sizeDynamics: BrushDynamics; minimumDiameter: number; tiltScale: number; angleDynamics: BrushDynamics; roundnessDynamics: BrushDynamics; minimumRoundness: number; flipX: boolean; flipY: boolean; brushProjection: boolean; }; scatter?: { bothAxes: boolean; scatterDynamics: BrushDynamics; countDynamics: BrushDynamics; count: number; }; texture?: { id: string; name: string; invert: boolean; scale: number; brightness: number; contrast: number; blendMode: BlendMode; depth: number; depthMinimum: number; depthDynamics: BrushDynamics; }; dualBrush?: { flip: boolean; shape: BrushShape; blendMode: BlendMode; useScatter: boolean; spacing: number; count: number; bothAxes: boolean; countDynamics: BrushDynamics; scatterDynamics: BrushDynamics; }; colorDynamics?: { foregroundBackground: BrushDynamics; hue: number; saturation: number; brightness: number; purity: number; perTip: boolean; }; transfer?: { flowDynamics: BrushDynamics; opacityDynamics: BrushDynamics; wetnessDynamics: BrushDynamics; mixDynamics: BrushDynamics; }; brushPose?: { overrideAngle: boolean; overrideTiltX: boolean; overrideTiltY: boolean; overridePressure: boolean; pressure: number; tiltX: number; tiltY: number; angle: number; }; noise: boolean; wetEdges: boolean; protectTexture?: boolean; spacing: number; brushGroup?: undefined; interpretation?: boolean; useBrushSize: boolean; toolOptions?: { brushPreset: boolean; flow: number; smooth: number; mode: BlendMode; opacity: number; smoothing: boolean; smoothingValue: number; smoothingRadiusMode: boolean; smoothingCatchup: boolean; smoothingCatchupAtEnd: boolean; smoothingZoomCompensation: boolean; pressureSmoothing: boolean; usePressureOverridesSize: boolean; usePressureOverridesOpacity: boolean; useLegacy: boolean; flowDynamics?: BrushDynamics; opacityDynamics?: BrushDynamics; sizeDynamics?: BrushDynamics; }; } export declare function readAbr(buffer: ArrayBufferView, options?: { logMissingFeatures?: boolean; }): Abr;