import { SDK_Base } from 'sdk/client/base';
import { SDK_Execution } from 'sdk/interfaces/sdk-execution';
import { SDK_UpdateMarket_Body_Dto, SDK_UpdateMarket_Body_MarketOwner, SDK_UpdateMarket_Response } from './types';
import { SDK_Context } from 'sdk/client/client';
export declare class SDK_Market_Update extends SDK_Base implements SDK_Execution {
    private marketId;
    private payload;
    constructor(ctx: SDK_Context, marketId: number, payload?: SDK_UpdateMarket_Body_Dto);
    /**
     * Sets the default owner ID for the market.
     * @param defaultOwnerId - The default owner ID.
     * @returns The current instance for chaining.
     */
    withDefaultOwnerId(defaultOwnerId: number): this;
    /**
     * Sets the market owner details.
     * @param marketOwner - The market owner details.
     * @returns The current instance for chaining.
     */
    withMarketOwner(marketOwner: SDK_UpdateMarket_Body_MarketOwner): this;
    /**
     * Sets the NOI cap rate threshold for the market.
     * @param thresholdNoiCapRate - The NOI cap rate threshold.
     * @returns The current instance for chaining.
     */
    withThresholdNoiCapRate(thresholdNoiCapRate: number): this;
    /**
     * Sets the ARV uplift threshold for the market.
     * @param thresholdArvUplift - The ARV uplift threshold.
     * @returns The current instance for chaining.
     */
    withThresholdArvUplift(thresholdArvUplift: number): this;
    /**
     * Sets the title insurance percentage for the market.
     * @param titleInsurancePercentage - The title insurance percentage.
     * @returns The current instance for chaining.
     */
    withTitleInsurancePercentage(titleInsurancePercentage: number): this;
    /**
     * Sets the default term template ID for the market.
     * @param defaultTermTemplateId - The term template ID.
     * @returns The current instance for chaining.
     */
    withDefaultTermTemplateId(defaultTermTemplateId: number): this;
    /**
     * Sets the vacancy percentage for the market.
     * @param vacancyPercentage - The vacancy percentage.
     * @returns The current instance for chaining.
     */
    withVacancyPercentage(vacancyPercentage: number): this;
    /**
     * Sets the repair and maintenance percentage for the market.
     * @param repairAndMaintenancePercentage - The repair and maintenance percentage.
     * @returns The current instance for chaining.
     */
    withRepairAndMaintenancePercentage(repairAndMaintenancePercentage: number): this;
    /**
     * Sets the replacement cost per square foot for the market.
     * @param replacementCostPerFeet - The replacement cost per square foot.
     * @returns The current instance for chaining.
     */
    withReplacementCostPerFeet(replacementCostPerFeet: number): this;
    /**
     * Sets the default county ID for the market.
     * @param defaultCountyId - The default county ID.
     * @returns The current instance for chaining.
     */
    withDefaultCountyId(defaultCountyId: string): this;
    /**
     * Executes the market update with all configured values
     * @returns Promise resolving to the update response
     */
    execute(): Promise<SDK_UpdateMarket_Response>;
    private clonePayload;
    private resetPayload;
}
