import * as dotenv from 'dotenv';
import { Config } from '@api3/airnode-node';
import { Receipt } from '../types';
import { DeployAirnodeOutput } from '../infrastructure';
export declare function loadConfig(configPath: string, secrets: Record<string, string | undefined>): {
    ois: {
        version: string;
        endpoints: {
            description?: string | undefined;
            externalDocs?: string | undefined;
            summary?: string | undefined;
            name: string;
            parameters: {
                default?: string | undefined;
                description?: string | undefined;
                example?: string | undefined;
                required?: boolean | undefined;
                name: string;
                operationParameter: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                };
            }[];
            fixedOperationParameters: {
                value: string;
                operationParameter: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                };
            }[];
            operation: {
                path: string;
                method: "get" | "post";
            };
            reservedParameters: {
                fixed?: string | undefined;
                default?: string | undefined;
                name: "_type" | "_path" | "_times";
            }[];
        }[];
        oisFormat: string;
        title: string;
        apiSpecifications: {
            components: {
                securitySchemes: Record<string, {
                    type: "http";
                    scheme: "bearer" | "basic";
                } | {
                    name: string;
                    type: "apiKey";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayChainId";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayChainType";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayRequesterAddress";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relaySponsorAddress";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relaySponsorWalletAddress";
                    in: "query" | "header" | "cookie";
                }>;
            };
            paths: Record<string, Record<string, {
                parameters: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                }[];
            }>>;
            servers: {
                url: string;
            }[];
            security: Record<string, []>;
        };
    }[];
    chains: {
        blockHistoryLimit?: number | undefined;
        minConfirmations?: number | undefined;
        options: {
            baseFeeMultiplier?: number | undefined;
            priorityFee?: {
                unit?: "wei" | "kwei" | "mwei" | "gwei" | "szabo" | "finney" | "ether" | undefined;
                value: number;
            } | undefined;
            txType: "legacy" | "eip1559";
        };
        type: "evm";
        authorizers: string[];
        contracts: {
            AirnodeRrp: string;
        };
        id: string;
        providers: Record<string, {
            url: string;
        }>;
        maxConcurrency: number;
    }[];
    nodeSettings: {
        airnodeAddressShort?: string | undefined;
        skipValidation?: boolean | undefined;
        airnodeWalletMnemonic: string;
        heartbeat: {
            url?: string | undefined;
            apiKey?: string | undefined;
            id?: string | undefined;
            enabled: boolean;
        };
        httpGateway: {
            apiKey?: string | undefined;
            maxConcurrency?: number | undefined;
            enabled: boolean;
        };
        httpSignedDataGateway: {
            apiKey?: string | undefined;
            maxConcurrency?: number | undefined;
            enabled: boolean;
        };
        stage: string;
        cloudProvider: {
            type: "local";
        } | {
            type: "aws";
            region: string;
            disableConcurrencyReservations: boolean;
        } | {
            type: "gcp";
            region: string;
            disableConcurrencyReservations: boolean;
            projectId: string;
        };
        logFormat: "json" | "plain";
        logLevel: "DEBUG" | "INFO" | "WARN" | "ERROR";
        nodeVersion: string;
    };
    triggers: {
        http?: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[] | undefined;
        rrp: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[];
        httpSignedData: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[];
    };
    apiCredentials: {
        oisTitle: string;
        securitySchemeName: string;
        securitySchemeValue: string;
    }[];
};
export declare function loadTrustedConfig(configPath: string, secrets: Record<string, string | undefined>): {
    ois: {
        version: string;
        endpoints: {
            description?: string | undefined;
            externalDocs?: string | undefined;
            summary?: string | undefined;
            name: string;
            parameters: {
                default?: string | undefined;
                description?: string | undefined;
                example?: string | undefined;
                required?: boolean | undefined;
                name: string;
                operationParameter: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                };
            }[];
            fixedOperationParameters: {
                value: string;
                operationParameter: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                };
            }[];
            operation: {
                path: string;
                method: "get" | "post";
            };
            reservedParameters: {
                fixed?: string | undefined;
                default?: string | undefined;
                name: "_type" | "_path" | "_times";
            }[];
        }[];
        oisFormat: string;
        title: string;
        apiSpecifications: {
            components: {
                securitySchemes: Record<string, {
                    type: "http";
                    scheme: "bearer" | "basic";
                } | {
                    name: string;
                    type: "apiKey";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayChainId";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayChainType";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relayRequesterAddress";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relaySponsorAddress";
                    in: "query" | "header" | "cookie";
                } | {
                    name: string;
                    type: "relaySponsorWalletAddress";
                    in: "query" | "header" | "cookie";
                }>;
            };
            paths: Record<string, Record<string, {
                parameters: {
                    name: string;
                    in: "query" | "header" | "cookie" | "path";
                }[];
            }>>;
            servers: {
                url: string;
            }[];
            security: Record<string, []>;
        };
    }[];
    chains: {
        blockHistoryLimit?: number | undefined;
        minConfirmations?: number | undefined;
        options: {
            baseFeeMultiplier?: number | undefined;
            priorityFee?: {
                unit?: "wei" | "kwei" | "mwei" | "gwei" | "szabo" | "finney" | "ether" | undefined;
                value: number;
            } | undefined;
            txType: "legacy" | "eip1559";
        };
        type: "evm";
        authorizers: string[];
        contracts: {
            AirnodeRrp: string;
        };
        id: string;
        providers: Record<string, {
            url: string;
        }>;
        maxConcurrency: number;
    }[];
    nodeSettings: {
        airnodeAddressShort?: string | undefined;
        skipValidation?: boolean | undefined;
        airnodeWalletMnemonic: string;
        heartbeat: {
            url?: string | undefined;
            apiKey?: string | undefined;
            id?: string | undefined;
            enabled: boolean;
        };
        httpGateway: {
            apiKey?: string | undefined;
            maxConcurrency?: number | undefined;
            enabled: boolean;
        };
        httpSignedDataGateway: {
            apiKey?: string | undefined;
            maxConcurrency?: number | undefined;
            enabled: boolean;
        };
        stage: string;
        cloudProvider: {
            type: "local";
        } | {
            type: "aws";
            region: string;
            disableConcurrencyReservations: boolean;
        } | {
            type: "gcp";
            region: string;
            disableConcurrencyReservations: boolean;
            projectId: string;
        };
        logFormat: "json" | "plain";
        logLevel: "DEBUG" | "INFO" | "WARN" | "ERROR";
        nodeVersion: string;
    };
    triggers: {
        http?: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[] | undefined;
        rrp: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[];
        httpSignedData: {
            endpointId: string;
            endpointName: string;
            oisTitle: string;
        }[];
    };
    apiCredentials: {
        oisTitle: string;
        securitySchemeName: string;
        securitySchemeValue: string;
    }[];
};
export declare function parseSecretsFile(secretsPath: string): dotenv.DotenvParseOutput;
export declare function writeReceiptFile(receiptFilename: string, mnemonic: string, config: Config, commandOutput: DeployAirnodeOutput): void;
export declare function parseReceiptFile(receiptFilename: string): Receipt;
