import { SDK_UpdateProperty_Body_Property, SDK_UpdateProperty_Response_Dto } from './types';
import { SDK_Base } from '../../base';
import { SDK_Context } from 'sdk/client/client';
import { SDK_Execution } from 'sdk/interfaces/sdk-execution';
export declare class SDK_Properties_Update extends SDK_Base implements SDK_Execution {
    private propertyId;
    private payload;
    constructor(ctx: SDK_Context, propertyId: string, payload?: SDK_UpdateProperty_Body_Property);
    /**
     * Sets the As-Is property value (ATTOM AVM)
     * @param value Property value amount
     * @returns Current instance for method chaining
     */
    withAsIsValue(value: number): this;
    /**
     * Sets the estimated renovation cost
     * @param value Renovation cost amount
     * @returns Current instance for method chaining
     */
    withRenoAmount(value: number): this;
    /**
     * Sets the ATOOM ARV value
     * @param value ARV amount
     * @returns Current instance for method chaining
     */
    withArv(value: number): this;
    /**
     * Sets the property square footage
     * @param value Square footage
     * @returns Current instance for method chaining
     */
    withSqft(value: number): this;
    /**
     * Sets the year the property was built
     * @param value Year built
     * @returns Current instance for method chaining
     */
    withYearBuilt(value: number): this;
    /**
     * Sets the number of stories
     * @param value Number of stories
     * @returns Current instance for method chaining
     */
    withStories(value: number): this;
    /**
     * Sets the housing authority name
     * @param value Housing authority name
     * @note You can get list Housing Authority names from the SDK Housing Authorities
     * @example
     * const housingAuthorityList = await client.options.housingAuthorities.list().execute();
     * @returns Current instance for method chaining
     */
    withHousingAuthorityName(value: string): this;
    /**
     * Filters properties by type
     * @param propertyTypes - types to search for
     * @note For a complete list of available type options, you can use the SDK Options
     * @example
     * // Get available types first
     * const types = await client.options.properties.types.list(housingAuthorityName).execute();
     * @returns The current instance for method chaining
     */
    withPropertyType(value: string): this;
    /**
     * Filters properties by status
     * @param propertyStatus - statuses to search for
     * @note For a complete list of available type options, you can use the SDK Options
     * @example
     * // Get available statuses first
     * const types = await client.options.properties.statuses.list().execute();
     * @returns The current instance for method chaining
     */
    withStatus(value: string): this;
    /**
     * Sets the water supply characteristic
     * @param value Water supply type
     * @returns Current instance for method chaining
     * @note You can get list water supply types from the SDK Options
     * @example
     * const waterSupplyList = await client.options.properties.waterSupplies.list().execute();
     */
    withCharacteristicsWaterSupply(value: string): this;
    /**
     * Sets the sewage type characteristic
     * @param value Sewage type
     * @returns Current instance for method chaining
     * @note You can get list sewage types from the SDK Options
     * @example
     * const sewageTypeList = await client.options.properties.sewerTypes.list().execute();
     */
    withCharacteristicsSewageType(value: string): this;
    /**
     * Sets the construction characteristic
     * @param value Construction type
     * @returns Current instance for method chaining
     * @note You can get list construction types from the SDK Options
     * @example
     * const constructionList = await client.options.properties.constructions.list().execute();
     */
    withCharacteristicsConstruction(value: string): this;
    /**
     * Sets the foundation characteristic
     * @param value Foundation type
     * @returns Current instance for method chaining
     * @note You can get list foundation types from the SDK Options
     * @example
     * const foundationList = await client.options.properties.foundations.list().execute();
     */
    withCharacteristicsFoundation(value: string): this;
    /**
     * Sets the siding characteristic
     * @param value Siding type
     * @returns Current instance for method chaining
     * @note You can get list siding types from the SDK Options
     * @example
     * const sidingList = await client.options.properties.sidings.list().execute();
     */
    withCharacteristicsSiding(value: string): this;
    /**
     * Sets the roof type characteristic
     * @param value Roof type
     * @returns Current instance for method chaining
     * @note You can get list roof types from the SDK Options
     * @example
     * const roofTypeList = await client.options.properties.roofTypes.list().execute();
     */
    withCharacteristicsRoofType(value: string): this;
    /**
     * Sets whether property has an attic
     * @param value true if property has attic
     * @returns Current instance for method chaining
     */
    withFeatureHasAttic(value: boolean): this;
    /**
     * Sets whether property has a deck
     * @param value true if property has deck
     * @returns Current instance for method chaining
     */
    withFeatureHasDeck(value: boolean): this;
    /**
     * Sets whether property has a patio
     * @param value true if property has patio
     * @returns Current instance for method chaining
     */
    withFeatureHasPatio(value: boolean): this;
    /**
     * Sets whether property has common space
     * @param value true if property has common space
     * @returns Current instance for method chaining
     */
    withFeatureHasCommonSpace(value: boolean): this;
    /**
     * Sets whether property has a yard
     * @param value true if property has yard
     * @returns Current instance for method chaining
     */
    withFeatureHasYard(value: boolean): this;
    /**
     * Sets whether property has a elevator
     * @param value true if property has elevator
     * @returns Current instance for method chaining
     */
    withFeatureHasElevator(value: boolean): this;
    /**
     * Sets whether property has a basement
     * @param value true if property has basement
     * @returns Current instance for method chaining
     */
    withFeatureHasBasement(value: boolean): this;
    /**
     * Sets whether property has a common laundry
     * @param value true if property has a common laundry
     * @returns Current instance for method chaining
     */
    withFeatureHasCommonLaundry(value: boolean): this;
    /**
     * Sets whether property has a garage
     * @param value true if property has garage
     * @returns Current instance for method chaining
     */
    withFeatureHasGarage(value: boolean): this;
    /**
     * Sets whether property has a gate
     * @param value true if property has gate
     * @returns Current instance for method chaining
     */
    withFeatureHasGate(value: boolean): this;
    /**
     * Sets whether property has a pool
     * @param value true if property has pool
     * @returns Current instance for method chaining
     */
    withFeatureHasPool(value: boolean): this;
    /**
     * Sets whether property has a porch
     * @param value true if property has porch
     * @returns Current instance for method chaining
     */
    withFeatureHasPorch(value: boolean): this;
    /**
     * Sets whether property has a sidewalk
     * @param value true if property has a sidewalk
     * @returns Current instance for method chaining
     */
    withFeatureHasSidewalk(value: boolean): this;
    /**
     * Sets whether property has a driveway
     * @param value true if property has driveway
     * @returns Current instance for method chaining
     */
    withFeatureHasDriveway(value: boolean): this;
    /**
     * Sets whether property has a exterior stairs
     * @param value true if property has exterior stairs
     * @returns Current instance for method chaining
     */
    withFeatureHasExteriorStairs(value: boolean): this;
    /**
     * Sets the title insurance amount
     * @param value Title insurance cost
     * @returns Current instance for method chaining
     */
    withTitleInsurance(value: number): this;
    /**
     * Sets the transfer tax amount
     * @param value Transfer tax amount
     * @returns Current instance for method chaining
     */
    withTransferTax(value: number): this;
    /**
     * Sets the closing cost override amount
     * @param value Closing cost amount
     * @returns Current instance for method chaining
     */
    withCoreClosingCost(value: number): this;
    /**
     * Sets the estimated acquisition cost
     * @param value Acquisition cost amount
     * @returns Current instance for method chaining
     */
    withEstimatedAcquisitionCost(value: number): this;
    /**
     * Sets the owner reserve override amount
     * @param value Reserve amount
     * @returns Current instance for method chaining
     */
    withOwnerReserveAmount(value: number): this;
    /**
     * Sets the property management reserve override amount
     * @param value Reserve amount
     * @returns Current instance for method chaining
     */
    withPmReserveAmount(value: number): this;
    /**
     * Sets the PM onboarding cost override amount
     * @param value Onboarding cost amount
     * @returns Current instance for method chaining
     */
    withPmOnboardingAmount(value: number): this;
    /**
     * Executes the property update with all configured values
     * @returns Promise resolving to the update response
     */
    execute(): Promise<SDK_UpdateProperty_Response_Dto>;
    private clonePayload;
    private resetPayload;
}
