import { NextpnrJson } from '../pkg';
export { NextpnrJson };
export declare const SUPPORTED_DEVICES: {
    readonly ecp5: readonly ["25k", "45k", "85k"];
};
export type SupportedFamily = keyof typeof SUPPORTED_DEVICES;
interface Chip<Family extends SupportedFamily> {
    family: Family;
    device: typeof SUPPORTED_DEVICES[Family][number];
}
export type SupportedChip = Chip<keyof typeof SUPPORTED_DEVICES>;
type ColorConfig = {
    active: string;
    inactive: string;
    frame: string;
    background: string;
};
export type ViewerConfig = {
    width: number;
    height: number;
    createToggles: boolean;
    colors: ColorConfig;
    cellColors: Record<string, string>;
    chip: SupportedChip;
};
export declare const defaultConfig: ViewerConfig;
export declare function isSupported<Family extends SupportedFamily>(family: Family, device: typeof SUPPORTED_DEVICES[Family][number]): boolean;
export declare class NextPNRViewer {
    private config;
    private viewer;
    private container;
    private canvas;
    constructor(container: HTMLDivElement, config?: Partial<ViewerConfig>);
    render(): Promise<void>;
    showJson(json: NextpnrJson): Promise<void>;
    resize(width: number, height: number): Promise<void>;
    private _doRender;
    private _doResize;
    private _createCanvas;
    private _addEventListeners;
}
