import { Base } from '@airtable/blocks/models';
import { AirtableTableLinks, BaseSyncConfig } from '../../models';
import { ShopifyObjectType, ShopifyObjects } from '../../models/shopify';
import { AirtableField } from '../airtable';
import { ShopifyObjectAirtableFields, ShopifyObjectsAirtableFieldsMap } from '../airtable/ShopifyObjectAirtableFields';
declare type CreateFieldsParam = Parameters<Base['createTableAsync']>[1];
declare type CreateFieldParam = Parameters<Base['createTableAsync']>[1][number];
export declare type getShopifyObjectAirtableFields<SOT extends ShopifyObjectType> = ({ airtableTableLinks, baseSyncConfig }: {
    airtableTableLinks: AirtableTableLinks;
    baseSyncConfig: BaseSyncConfig;
}) => ShopifyObjectsAirtableFieldsMap[SOT];
export declare type CreateAirtableFieldBody = AirtableField & {
    name: string;
};
export declare function getCreateFieldProps({ shopifyObjectType, airtableTableLinks, baseSyncConfig, shopifyObjectKey }: {
    shopifyObjectType: ShopifyObjectType;
    airtableTableLinks: AirtableTableLinks;
    baseSyncConfig: BaseSyncConfig;
    shopifyObjectKey: keyof ShopifyObjects[typeof shopifyObjectType]['props'];
}): CreateFieldParam | null;
export declare function getCreateTableProps({ shopifyObjectType, airtableTableLinks, baseSyncConfig, }: {
    shopifyObjectType: ShopifyObjectType;
    airtableTableLinks: AirtableTableLinks;
    baseSyncConfig: BaseSyncConfig;
}): CreateFieldsParam;
export declare type getCreateTableProps = typeof getCreateTableProps;
export declare function getModifyAirtableFieldProps({ shopifyObjectType, airtableFields, fieldKey, }: {
    shopifyObjectType: ShopifyObjectType;
    airtableFields: ShopifyObjectAirtableFields<ShopifyObjects[typeof shopifyObjectType]>;
    fieldKey: keyof ShopifyObjectAirtableFields<ShopifyObjects[typeof shopifyObjectType]>['fields'];
}): CreateAirtableFieldBody | null;
export {};
