import { ContractRunner } from 'ethers';
import { KAMI721C } from '../contracts/KAMI721C';
/**
 * Factory class for deploying KAMI721C contracts (Standard and Upgradeable via Proxy)
 */
export declare class KAMI721CFactory {
    private implementationFactory;
    private proxyFactory;
    private runner;
    /**
     * Creates a new instance of the KAMI721C factory
     * @param runner A signer or provider with deployment permissions
     */
    constructor(runner: ContractRunner);
    /**
     * Deploy a new KAMI721C contract (Upgradeable via Transparent Proxy)
     * @param usdcAddress The address of the USDC token contract
     * @param name The name of the NFT collection
     * @param symbol The symbol of the NFT collection
     * @param baseURI The base URI for token metadata
     * @param initialMintPrice The initial mint price in USDC (with 6 decimals)
     * @param platformAddress The address that will receive platform commissions (also becomes proxy admin)
     * @param platformCommissionPercentage The platform commission percentage in basis points (e.g., 500 = 5%)
     * @param ownerAddress The address to grant the OWNER_ROLE to initially
     * @returns The deployed contract instance, interacting with the proxy
     */
    deployUpgradeable(usdcAddress: string, name: string, symbol: string, baseURI: string, initialMintPrice?: bigint | string, // Default 1 USDC (6 decimals)
    platformAddress?: string, platformCommissionPercentage?: number, // Default 5%
    ownerAddress?: string): Promise<KAMI721C>;
    /**
     * Deploy a new KAMI721C contract (Standard Non-Upgradeable Version)
     * @deprecated Use deployUpgradeable instead for the proxy-based version.
     * @param usdcAddress The address of the USDC token contract
     * @param name The name of the NFT collection
     * @param symbol The symbol of the NFT collection
     * @param baseURI The base URI for token metadata
     * @param initialMintPrice The initial mint price in USDC (with 6 decimals)
     * @param platformAddress The address that will receive platform commissions
     * @param platformCommissionPercentage The platform commission percentage in basis points (e.g., 500 = 5%)
     * @returns The deployed contract instance
     */
    deployStandard(usdcAddress: string, name: string, symbol: string, baseURI: string, initialMintPrice?: bigint | string, // Default 1 USDC (6 decimals)
    platformAddress?: string, platformCommissionPercentage?: number): Promise<KAMI721C>;
}
