import React, { Component } from 'react'; import { Token } from '../core/token'; import { ValidationMap } from 'prop-types'; import { Dictionary } from 'infinitymint/dist/app/helpers'; import { KeyValue } from 'infinitymint/dist/app/interfaces'; export interface RenderClass extends Component { onWindowResize(shouldReload?: boolean): void; renderToken(): string; load(): Promise; getDataURL(): string; getContainerId(): string; } export interface RenderProps extends Dictionary { scaleFactor?: number; } export interface RenderComponentProps extends KeyValue { children?: React.ReactNode; token: Token; rendererProps?: RenderProps; } export interface RenderComponentState extends KeyValue { loaded?: boolean; seed?: string; rendererProps?: RenderProps; savedRender?: any; } /** * Extend this class to create a new renderer */ export declare abstract class RenderComponent extends Component implements RenderClass { propTypes?: React.WeakValidationMap; contextType?: React.Context; contextTypes?: ValidationMap; childContextTypes?: ValidationMap; defaultProps?: Partial; displayName?: string; getDerivedStateFromProps?: React.GetDerivedStateFromProps; getDerivedStateFromError?: React.GetDerivedStateFromError; onWindowResize(shouldReload?: boolean): void; renderToken(): string; load(): Promise; getDataURL(): string; getContainerId(): string; /** * base64encoded image/png data url of the rendered image, created after load is called */ protected renderedImage: string; } /** * Default Render class using the canvas element */ export default class DefaultRenderer extends RenderComponent { constructor(props: { children?: React.ReactNode; token: Token; rendererProps?: RenderProps; }); /** * * @param shouldReload * @returns */ onWindowResize(shouldReload?: boolean): { width: number; height: number; }; componentDidMount(): void; load(): Promise; getDataURL(): string; renderToken(): string; loadImage(src: string): Promise; drawScaledImage(img: HTMLImageElement, context: CanvasRenderingContext2D, settings?: { x?: number; y?: number; }): void; componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void; getContainerId(): string; getCanvasID(): string; getCanvasElement(): HTMLCanvasElement; createCanvasElement(): HTMLCanvasElement; render(): JSX.Element; } //# sourceMappingURL=DefaultRenderer.d.ts.map