import type { PolyEngine } from '../../../Poly';
type PolyPluginCallback = (poly: PolyEngine) => void;
interface PolyPluginOptions {
    libraryName: string;
    libraryImportPath: string;
}
export interface PolyPluginData {
    name: string;
    libraryName: string;
    libraryImportPath: string;
}
export declare class PolyPlugin {
    protected _name: string;
    protected _callback: PolyPluginCallback;
    protected _options: PolyPluginOptions;
    constructor(_name: string, _callback: PolyPluginCallback, _options: PolyPluginOptions);
    name(): string;
    libraryName(): string;
    init(poly: PolyEngine): void;
    toJSON(): PolyPluginData;
}
export type PolyPluginInterface = Pick<PolyPlugin, 'name' | 'libraryName' | 'init' | 'toJSON'>;
export {};
