import { BaseAccessibilityTest, TestResult, TestContext } from '../base-test';
export interface PWAManifest {
    name?: string;
    short_name?: string;
    description?: string;
    start_url?: string;
    display?: string;
    background_color?: string;
    theme_color?: string;
    icons?: Array<{
        src: string;
        sizes: string;
        type: string;
    }>;
    categories?: string[];
    lang?: string;
    dir?: string;
    scope?: string;
    orientation?: string;
    prefer_related_applications?: boolean;
    related_applications?: Array<{
        platform: string;
        url: string;
        id?: string;
    }>;
}
export interface PWAResult extends TestResult {
    manifest: PWAManifest | null;
    hasServiceWorker: boolean;
    hasManifest: boolean;
    isInstallable: boolean;
    score: number;
    features: PWAFeature[];
    recommendations: string[];
    duration?: number;
    url?: string;
    testName?: string;
    description?: string;
    error?: string;
}
export interface PWAFeature {
    name: string;
    description: string;
    implemented: boolean;
    score: number;
    details?: string;
}
export declare class PWATest extends BaseAccessibilityTest {
    name: string;
    description: string;
    category: string;
    priority: string;
    standards: string[];
    run(context: TestContext): Promise<TestResult>;
    private checkManifest;
    private checkServiceWorker;
    private checkPWAFeatures;
    private calculateScore;
    private checkInstallability;
    private generateRecommendations;
}
//# sourceMappingURL=pwa-test.d.ts.map