import { AreaPositionRestrictions, AreaSizeRestrictions, CoreSettings, CropperState, DefaultCoordinates, DefaultPosition, DefaultSize, DefaultVisibleArea, ImageRestriction, PositionRestrictions, RawAspectRatio, SizeRestrictions } from "../types/index";
interface DefaultSettingsParams<Settings extends CoreSettings & DefaultSettings> {
    minWidth?: number;
    minHeight?: number;
    maxWidth?: number;
    maxHeight?: number;
    defaultSize?: DefaultSize<Settings>;
    defaultPosition?: DefaultPosition<Settings>;
    imageRestriction?: ImageRestriction;
    defaultCoordinates?: DefaultCoordinates<Settings>;
    defaultVisibleArea?: DefaultVisibleArea<Settings>;
    aspectRatio?: RawAspectRatio | ((state: CropperState, setting: Settings) => RawAspectRatio);
    areaSizeRestrictions?: AreaSizeRestrictions | ((state: CropperState, settings: Settings) => AreaSizeRestrictions);
    areaPositionRestrictions?: AreaPositionRestrictions | ((state: CropperState, settings: Settings) => AreaPositionRestrictions);
    sizeRestrictions?: SizeRestrictions | ((state: CropperState, settings: Settings) => SizeRestrictions);
    positionRestrictions?: PositionRestrictions | ((state: CropperState, settings: Settings) => PositionRestrictions);
}
interface DefaultSettings {
    minWidth?: number;
    minHeight?: number;
    maxWidth?: number;
    maxHeight?: number;
    defaultSize?: DefaultSize<this>;
    defaultPosition?: DefaultPosition<this>;
    imageRestriction?: ImageRestriction;
}
declare function withDefaultSizeRestrictions<Settings extends CoreSettings & DefaultSettings>(sizeRestrictions: SizeRestrictions | ((state: CropperState, settings: Settings) => SizeRestrictions)): (state: CropperState, basicSettings: Settings) => SizeRestrictions;
declare function withDefaultPositionRestrictions(positionRestrictions: PositionRestrictions | ((state: CropperState, settings: CoreSettings) => PositionRestrictions)): (state: CropperState, basicSettings: CoreSettings & DefaultSettings) => import("../types/index").Limits;
declare function withDefaultAreaPositionRestrictions(areaPositionRestrictions: AreaPositionRestrictions | ((state: CropperState, settings: CoreSettings) => AreaPositionRestrictions)): (state: CropperState, basicSettings: CoreSettings & DefaultSettings) => import("../types/index").Limits;
declare function withDefaultAreaSizeRestrictions(areaSizeRestrictions: AreaSizeRestrictions | ((state: CropperState, settings: CoreSettings) => AreaSizeRestrictions)): (state: CropperState, basicSettings: CoreSettings & DefaultSettings) => SizeRestrictions;
declare function createDefaultSettings<Settings extends CoreSettings & DefaultSettings>(params: DefaultSettingsParams<Settings>): {
    sizeRestrictions: (state: CropperState, basicSettings: Settings) => SizeRestrictions;
    areaPositionRestrictions: (state: CropperState, basicSettings: Settings) => import("../types/index").Limits;
    areaSizeRestrictions: (state: CropperState, basicSettings: Settings) => SizeRestrictions;
    positionRestrictions: (state: CropperState, basicSettings: Settings) => {};
    defaultCoordinates: (state: CropperState, basicSettings: Settings) => Partial<import("../types/index").Coordinates> | ((state: CropperState, settings: CoreSettings) => Partial<import("../types/index").Coordinates> | null) | import("../types/index").CoordinatesTransform[] | (import("../types/index").Size | ((state: CropperState) => {
        left: number;
        top: number;
    }))[] | null;
    defaultVisibleArea: (state: CropperState, basicSettings: Settings) => import("../types/index").Coordinates;
    aspectRatio: (state: CropperState, basicSettings: Settings) => import("../types/index").AspectRatio;
    minWidth?: number | undefined;
    minHeight?: number | undefined;
    maxWidth?: number | undefined;
    maxHeight?: number | undefined;
    defaultSize?: import("../types/index").Size | ((state: CropperState, props: Settings) => import("../types/index").Size) | undefined;
    defaultPosition?: import("../types/index").Position | ((state: CropperState, props: Settings) => import("../types/index").Position) | undefined;
    imageRestriction?: ImageRestriction | undefined;
};
export { DefaultSettingsParams, DefaultSettings, withDefaultSizeRestrictions, withDefaultPositionRestrictions, withDefaultAreaPositionRestrictions, withDefaultAreaSizeRestrictions, createDefaultSettings };
export * from "./defaultAreaPositionRestrictions";
export * from "./defaultPosition";
export * from "./defaultSize";
export * from "./defaultAreaSizeRestrictions";
export * from "./defaultVisibleArea";
export * from "./defaultBoundary";
export * from "./defaultPositionRestrictions";
export * from "./defaultSizeRestrictions";
export * from "./defaultStencilConstraints";
