/**
 * @fileoverview OrdoJS CLI - Netlify deployment adapter
 * Adapter for deploying to Netlify
 */
import { OptimizationResults } from '../../asset-optimizer.js';
import { DeploymentAdapter, DeploymentConfig, DeploymentResult } from '../adapter-interface.js';
/**
 * Netlify-specific configuration
 */
export interface NetlifyConfig extends DeploymentConfig {
    /**
     * Netlify project settings
     */
    settings?: {
        /**
         * Netlify site name
         */
        siteName?: string;
        /**
         * Netlify team name
         */
        teamName?: string;
        /**
         * Whether to use Netlify Edge Functions
         */
        useEdgeFunctions?: boolean;
        /**
         * Whether to use Netlify Forms
         */
        useForms?: boolean;
        /**
         * Whether to use Netlify Identity
         */
        useIdentity?: boolean;
        /**
         * Whether to use Netlify Large Media
         */
        useLargeMedia?: boolean;
        /**
         * Whether to use Netlify Analytics
         */
        useAnalytics?: boolean;
        /**
         * Whether to use Netlify Split Testing
         */
        useSplitTesting?: boolean;
    };
}
/**
 * Netlify deployment adapter
 */
export declare class NetlifyAdapter implements DeploymentAdapter {
    /**
     * Adapter name
     */
    name: string;
    /**
     * Adapter description
     */
    description: string;
    /**
     * Validate Netlify deployment configuration
     * @param config Deployment configuration
     * @returns Validation result
     */
    validateConfig(config: DeploymentConfig): {
        valid: boolean;
        errors?: string[];
    };
    /**
     * Prepare Netlify deployment
     * @param config Deployment configuration
     * @returns Deployment result
     */
    prepareDeployment(config: DeploymentConfig): Promise<DeploymentResult>;
    /**
     * Generate Netlify configuration
     * @param config Netlify configuration
     * @returns Netlify configuration TOML
     */
    private generateNetlifyConfig;
    /**
     * Generate Netlify _redirects file
     * @param redirects Redirects configuration
     * @returns Redirects file content
     */
    private generateRedirectsFile;
    /**
     * Generate Netlify _headers file
     * @param headers Headers configuration
     * @returns Headers file content
     */
    private generateHeadersFile;
    /**
     * Generate server functions for Netlify
     * @param config Deployment configuration
     */
    private generateServerFunctions;
    /**
     * Get deployment instructions
     * @param config Netlify configuration
     * @returns Deployment instructions
     */
    private getDeploymentInstructions;
    /**
     * Optimize assets for Netlify deployment
     * @param config Deployment configuration
     * @param outputDir Output directory
     * @returns Optimization results
     */
    optimizeForDeployment(config: DeploymentConfig, outputDir: string): Promise<OptimizationResults>;
    /**
     * Get Netlify-specific environment variables
     * @param config Deployment configuration
     * @returns Environment variables
     */
    getEnvironmentVariables(config: DeploymentConfig): Record<string, string>;
    /**
     * Get Netlify deployment command
     * @param config Deployment configuration
     * @returns Deployment command
     */
    getDeployCommand(config: DeploymentConfig): string;
}
//# sourceMappingURL=netlify-adapter.d.ts.map