import { IProgram } from '../base/IProgram';
import { ProgramDataPool } from '../image/ProgramDataPool';
import { Stage } from '../Stage';
/**
 *
 * @class away.pool.ProgramDataBase
 */
export declare class ProgramData {
    static PROGRAMDATA_ID_COUNT: number;
    private _pool;
    vertexString: string;
    fragmentString: string;
    stage: Stage;
    usages: number;
    /**
     * Dispose time, used in ProgramDataPool to avoid recreatings
     */
    disposedAt: number;
    program: IProgram;
    id: number;
    disposed: boolean;
    constructor(pool: ProgramDataPool, context: Stage, vertexString: string, fragmentString: string);
    /**
     * Lighed dispose. Pushs prog to pool for waiting time to die or mercy
     */
    dispose(): void;
    /**
     * Dispose prog and internal prog completely
     */
    disposeFinaly(): void;
}
//# sourceMappingURL=ProgramData.d.ts.map