class InitialParametersProvider {

    static SelectorFunction<Collection<Size>, Size> validPreviewSizeSelector(Size photoSize,
                                                                             SelectorFunction<Collection<Size>, Size> original) {
        return Selectors
                .firstAvailable(
                        previewWithSameAspectRatio(photoSize, original),
                        original
                );
    }

    public  InitialParametersProvider(CapabilitiesOperator capabilitiesOperator,
                                     SelectorFunction<Collection<Size>, Size> photoSizeSelector,
                                     SelectorFunction<Collection<Size>, Size> previewSizeSelector,
                                     SelectorFunction<Collection<FocusMode>, FocusMode> focusModeSelector,
                                     SelectorFunction<Collection<Flash>, Flash> flashSelector,
                                     SelectorFunction<Collection<Range<Integer>>, Range<Integer>> previewFpsRangeSelector,
                                     SelectorFunction<Range<Integer>, Integer> sensorSensitivitySelector,
                                     Integer jpegQuality,
                                     InitialParametersValidator parametersValidator);

}