import { BaseGridPlugin } from '../../core/plugin/base-plugin';
import { PrintConfig, PrintParams } from './types';
/**
 * Print Plugin for tbw-grid
 *
 * Enables printing the full grid content by temporarily disabling virtualization
 * and applying print-optimized styles. Handles large datasets gracefully with
 * configurable row limits.
 *
 * ## Installation
 *
 * ```ts
 * import { PrintPlugin } from '@toolbox-web/grid/plugins/print';
 * ```
 *
 * ## Configuration Options
 *
 * | Option | Type | Default | Description |
 * |--------|------|---------|-------------|
 * | `button` | `boolean` | `false` | Show print button in toolbar |
 * | `orientation` | `'portrait' \| 'landscape'` | `'landscape'` | Page orientation |
 * | `warnThreshold` | `number` | `500` | Show confirmation dialog when rows exceed this (0 = no warning) |
 * | `maxRows` | `number` | `0` | Hard limit on printed rows (0 = unlimited) |
 * | `includeTitle` | `boolean` | `true` | Include grid title in print |
 * | `includeTimestamp` | `boolean` | `true` | Include timestamp in footer |
 * | `title` | `string` | `''` | Custom print title |
 *
 * ## Programmatic API
 *
 * | Method | Signature | Description |
 * |--------|-----------|-------------|
 * | `print` | `(params?) => Promise<void>` | Trigger print dialog |
 * | `isPrinting` | `() => boolean` | Check if print is in progress |
 *
 * ## Events
 *
 * | Event | Detail | Description |
 * |-------|--------|-------------|
 * | `print-start` | `PrintStartDetail` | Fired when print begins |
 * | `print-complete` | `PrintCompleteDetail` | Fired when print completes |
 *
 * @example Basic Print
 * ```ts
 * import { PrintPlugin } from '@toolbox-web/grid/plugins/print';
 *
 * const grid = document.querySelector('tbw-grid');
 * grid.gridConfig = {
 *   plugins: [new PrintPlugin()],
 * };
 *
 * // Trigger print
 * const printPlugin = grid.getPlugin(PrintPlugin);
 * await printPlugin.print();
 * ```
 *
 * @example With Toolbar Button
 * ```ts
 * grid.gridConfig = {
 *   plugins: [new PrintPlugin({ button: true, orientation: 'landscape' })],
 * };
 * ```
 *
 * @see {@link PrintConfig} for all configuration options
 */
export declare class PrintPlugin extends BaseGridPlugin<PrintConfig> {
    #private;
    /** @internal */
    readonly name = "print";
    /** @internal */
    readonly version = "1.0.0";
    /** CSS styles for print mode */
    readonly styles: string;
    /**
     * Check if print is currently in progress
     */
    isPrinting(): boolean;
    /**
     * Trigger the browser print dialog
     *
     * This method:
     * 1. Validates row count against maxRows limit
     * 2. Disables virtualization to render all rows
     * 3. Applies print-specific CSS classes
     * 4. Opens the browser print dialog (or isolated window if `isolate: true`)
     * 5. Restores normal state after printing
     *
     * @param params - Optional parameters to override config for this print
     * @param params.isolate - If true, prints in an isolated window containing only the grid
     * @returns Promise that resolves when print dialog closes
     */
    print(params?: PrintParams): Promise<void>;
    /**
     * Register toolbar button if configured
     * @internal
     */
    afterRender(): void;
}
//# sourceMappingURL=PrintPlugin.d.ts.map