import * as Models from './models';
import * as Parameters from './parameters';
import { Client } from '../clients';
import { Callback } from '../types';
export declare class CustomFields {
    private client;
    constructor(client: Client);
    /** Create a new Custom Field on a board. */
    createCustomField<T = Models.CustomField>(parameters?: Parameters.CreateCustomField, callback?: Callback<T>): Promise<void>;
    /** Create a new Custom Field on a board. */
    createCustomField<T = Models.CustomField>(parameters?: Parameters.CreateCustomField, callback?: never): Promise<T>;
    getCustomField<T = Models.CustomField>(parameters: Parameters.GetCustomField, callback: Callback<T>): Promise<void>;
    getCustomField<T = Models.CustomField>(parameters: Parameters.GetCustomField, callback?: never): Promise<T>;
    /** Update a Custom Field definition. */
    updateCustomField<T = Models.CustomField>(parameters: Parameters.UpdateCustomField, callback: Callback<T>): Promise<void>;
    /** Update a Custom Field definition. */
    updateCustomField<T = Models.CustomField>(parameters: Parameters.UpdateCustomField, callback?: never): Promise<T>;
    /** Delete a Custom Field from a board. */
    deleteCustomField<T = unknown>(parameters: Parameters.DeleteCustomField, callback: Callback<T>): Promise<void>;
    /** Delete a Custom Field from a board. */
    deleteCustomField<T = unknown>(parameters: Parameters.DeleteCustomField, callback?: never): Promise<T>;
    /** Get the options of a drop down Custom Field */
    getCustomFieldOptions<T = unknown>(parameters: Parameters.GetCustomFieldOptions, callback: Callback<T>): Promise<void>;
    /** Get the options of a drop down Custom Field */
    getCustomFieldOptions<T = unknown>(parameters: Parameters.GetCustomFieldOptions, callback?: never): Promise<T>;
    /** Add an option to a dropdown Custom Field */
    addCustomFieldOption<T = unknown>(parameters: Parameters.AddCustomFieldOption, callback: Callback<T>): Promise<void>;
    /** Add an option to a dropdown Custom Field */
    addCustomFieldOption<T = unknown>(parameters: Parameters.AddCustomFieldOption, callback?: never): Promise<T>;
    /** Retrieve a specific, existing Option on a given dropdown-type Custom Field */
    getCustomFieldsOption<T = unknown>(parameters: Parameters.GetCustomFieldsOption, callback: Callback<T>): Promise<void>;
    /** Retrieve a specific, existing Option on a given dropdown-type Custom Field */
    getCustomFieldsOption<T = unknown>(parameters: Parameters.GetCustomFieldsOption, callback?: never): Promise<T>;
    /** Delete an option from a Custom Field dropdown. */
    deleteCustomFieldsOption<T = unknown>(parameters: Parameters.DeleteCustomFieldsOption, callback: Callback<T>): Promise<void>;
    /** Delete an option from a Custom Field dropdown. */
    deleteCustomFieldsOption<T = unknown>(parameters: Parameters.DeleteCustomFieldsOption, callback?: never): Promise<T>;
}
