/**
 * Augment Window typings and add in properties provided by Gravity Forms, WordPress, etc.
 */
interface Window {
	jQuery: JQueryStatic

	// Form Editor
	GPAC: {
		strings: { [key: string]: string }
	}
	fieldSettings: { [setting: string]: string }
	GetSelectedField: () => { [setting: string]: string };
	GetFieldById: ( ...args: any ) => any
	GetLabel: ( ...args: any ) => any
	CalculationFormulaCodeMirrorEditorView: any
	tb_show: ( ...args: any ) => any

	// Frontend
	GPAdvancedCalculations: typeof GPAdvancedCalculations
	gform: {
		doAction: (action: string, ...args: any[]) => void
		addAction: (action: string, ...args: any[]) => void
		addFilter: (filter: string, ...args: any[]) => void
		applyFilters: <S>(filter: string, subject: S, ...args: any[]) => S
	}
	GFCalc: any
	GFMergeTag: any
	gf_check_field_rule: any
	gf_global: any
}
